相关疑难解决方法(0)

从使用Cloud Functions for Firebase上传的文件中获取下载URL

在Firebase存储中使用函数for Firebase上传文件后,我想获取该文件的下载URL.

我有这个 :

...

return bucket
    .upload(fromFilePath, {destination: toFilePath})
    .then((err, file) => {

        // Get the download url of file

    });
Run Code Online (Sandbox Code Playgroud)

目标文件有很多参数.甚至一个名字mediaLink.但是,如果我尝试访问此链接,我会收到此错误:

匿名用户没有storage.objects.get访问对象...

有人可以告诉我如何获取公共下载Url?

谢谢

node.js firebase google-cloud-functions firebase-storage

86
推荐指数
14
解决办法
4万
查看次数

TypeError:firebase.storage不是函数

按照这个例子,我不断收到错误:

 TypeError: firebase.storage is not a function
Run Code Online (Sandbox Code Playgroud)

从我的代码中的这一行:

var storageRef = firebase.storage().ref();
Run Code Online (Sandbox Code Playgroud)

(当我只是尝试从存储指南初始化存储时,从firebase的npm站点链接,我得到同样的错误.)

在我的Node.js项目中,我包括以下库:

  • const firebase = require('firebase');
  • var admin = require('firebase-admin');
  • const fs = require('fs');

到目前为止,我已经成功地读取并写入了firebase数据库,创建了对数据库的引用var db = admin.database(),然后var ref = db.ref("/")......所以我知道我已经正确配置了Firebase和firebase-database.但是我卡上storage,并试图既admin.storage().ref()firebase.storage().ref(),并firebase.storage().ref("/")用相同的错误消息.

我也尝试过:

var storage = firbase.storage();
var storageRef = storage.ref();
Run Code Online (Sandbox Code Playgroud)

const app = firebase.initializeApp(config);
var storage = app.storage();
Run Code Online (Sandbox Code Playgroud)

ref()'s无效的论点()"/"...但有相同的信息,但无济于事.

我正在使用:

  • "firebase":"^ 3.6.4"
  • "firebase-admin":"^ …

javascript node.js firebase firebase-storage

38
推荐指数
6
解决办法
3万
查看次数

将文件上传到特定目录中的Google Cloud

如何在特定的存储桶目录(例如foo)中上传Google Cloud上的文件?

"use strict";

const gcloud = require("gcloud");

const PROJECT_ID = "<project-id>";

let storage = gcloud.storage({
  projectId: PROJECT_ID,
  keyFilename: 'auth.json'
});

let bucket = storage.bucket(`${PROJECT_ID}.appspot.com`)
bucket.upload("1.jpg", (err, file) => {
    if (err) { return console.error(err); }
    let publicUrl = `https://firebasestorage.googleapis.com/v0/b/${PROJECT_ID}.appspot.com/o/${file.metadata.name}?alt=media`;
    console.log(publicUrl);
});
Run Code Online (Sandbox Code Playgroud)

我试过了:

bucket.file("foo/1.jpg").upload("1.jpg", ...)
Run Code Online (Sandbox Code Playgroud)

但那里没有upload方法.

1.jpg该如何发送foo目录?

在Firebase中,在客户端,我做:

ref.child("foo").put(myFile);
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-storage

12
推荐指数
2
解决办法
6494
查看次数

如何将文件上传到Node.js中的GCloud?

我看到了什么:


感想:

我目前在本地存储图像并将图像路径存储在Firebase实时数据库中.我想将图像存储在GCloud中(以降低成本).


题:

我应该如何修改我的当前代码以上传到GCLOUD?


当前代码:

var express = require("express");
var router = express.Router();
var flash = require("connect-flash");

var firebase = require("firebase");

var multer = require("multer");
var upload = multer({dest:"./public/images/uploads/", limits: {fileSize: 250000}}).single("image");


router.get("/", function(req, res, next){

    if (firebase.auth().currentUser == null) {
        global.page_name = "login";
        res.render("users/login");
    }
    else {
        global.page_name = "upload";
        res.render("upload");
    }
});

router.post("/", function(req, res, next){
    upload(req,res, function (err) {
        if (err) {
            req.flash("error_msg", "File too large. Max Size: 250KB");
            res.redirect("/upload"); 
            return
        } …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-cloud-storage firebase multer

7
推荐指数
1
解决办法
1098
查看次数

以Firebase用户身份使用Node.js访问Firebase存储

我想验证Firebase存储规则在自动Node.js测试中是否按预期工作。

可以使用Firebase Admin API或服务帐户访问Firebase存储桶,如使用Node.js将文件上传到Firebase存储中所述

问题在于,使用Admin API或服务帐户会绕过存储规则。

由于Firebase Node.js API不包含firebase.storage功能,因此没有以给定的Firebase用户访问Firebase存储的明显方法。

简而言之,如何以给定的Firebase用户/ uid从Node.js访问Firebase存储?

node.js firebase firebase-storage firebase-security-rules

3
推荐指数
1
解决办法
426
查看次数

在哪里生成Firebase数据库PDF的数据 - 移动应用程序或Firebase托管Web应用程序

我有一个Android应用程序和一个Web应用程序(托管在Firebase Hosting上).Android应用会生成数据并将其保存到Firebase实时数据库.Android应用和网络应用都可以查看数据.

从Firebase数据库生成PDF数据的最佳位置在哪里 - Android应用程序或Web应用程序(通过JavaScript,例如jsPDF)?它将保存在Firebase存储中.

我认为Android应用程序可以调用后端生成PDF,并且PDF的链接将被发送回Android应用程序.但Firebase是一种无服务器架构,因此最好的解决方案是在Android应用上创建PDF,然后将其上传到Firebase存储......?

pdf android firebase firebase-hosting firebase-realtime-database

1
推荐指数
1
解决办法
5047
查看次数

Google Can Storage:插入存储桶时出错 - '错误403:指定项目的帐户已被禁用'

String projName = settings.getProject(); String bucketName = settings.getBucket();

System.out.println("Creating bucket, projName: "+projName+", bucketName: "+bucketName) ;
try {
  @SuppressWarnings("unused")
  Bucket createdBucket = storage.buckets().insert(projName, 
      new Bucket().setName(bucketName).setLocation("US")
    ).execute();
} catch (GoogleJsonResponseException e) {
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == HTTP_CONFLICT
      && error.getMessage().contains("You already own this bucket.")) {
    System.out.println("already exists");
  } else {
    System.out.println("Exception in tryCreateBucket: "+e);
    throw e;
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

创建存储桶,projName:round-center-551,bucketName:1904mybucketfoo

tryCreateBucket中的异常:

com.google.api.client.googleapis.json.GoogleJsonResponseException:403 Forbidden

{"code":403,"errors":[{"domain":"global""location":"Authorization","locationType":"header","message":"指定项目的帐户已被禁用.","reason":"accountDisabled"}],"message":"已禁用指定项目的帐户." 已禁用指定项目的帐户.

我已经确认Google云端存储和Google Cloud Datastore API服务已启用.知道应该怎么做才能启用帐户?

google-cloud-storage

0
推荐指数
1
解决办法
2370
查看次数