下面是这示例,我一直得到错误:
TypeError: firebase.storage is not a function在我的代码中的这一行:
var storageRef = firebase.storage().ref();(当我简单地尝试从存储指南初始化存储,并从消防基地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数据库。但是我被困在了storage上,并且尝试了admin.storage().ref()和firebase.storage().ref(),以及firebase.storage().ref("/")的错误信息。
我也试过:
var storage = firbase.storage();
var storageRef = storage.ref();和
const app = firebase.initializeApp(config);
var storage = app.storage();对于ref()的无效论点,()和"/".有同样的信息,但都没有用。
我在用:
要成功地创建对存储的引用,我必须做什么?
发布于 2016-12-27 21:43:32
不受欢迎,请参见下面的
根据这个答案的说法,在Node.js中,应该使用google-cloud包存储,而不是防火墙存储,似乎这个答案应该确认它。代码示例:
npm i --save google-cloud然后:
const gcloud = require('google-cloud')
const storage = gcloud.storage({
projectId: '<projectID>',
keyFilename: 'service-account-credentials.json',
});
const bucket = storage.bucket('<projectID>.appspot.com')截至2018年,这是正确的答案:
或者只使用包的存储部分:
npm install --save @google-cloud/storage然后:
var storage = require('@google-cloud/storage')还可以查看医生们以获得更多信息。
发布于 2018-06-09 10:27:41
我也面临着同样的问题。在我的例子中,除了Firebase内核之外,我还需要包括存储模块。
import firebase from 'firebase/app';
import 'firebase/storage'; // <----
firebase.initializeApp({
...
});
const storageRef = firebase.storage().ref();(国家预防机制第5.0.4版)
发布于 2016-12-28 00:05:48
反对意见:请参阅已接受的答案。
需要注意的一些细节:
google-cloud。到今天为止,Firebase和Google的参考和指南并没有反映出这一点。firebase-admin SDK,所以我现在不需要处理用户身份验证问题。目的
创建一个使用Firebase和Google的Node.js项目。为什么? Google有一个有用的数据库以及其他特性,Google允许云文件存储和检索。
方向
步骤1:项目创建
步骤2:安装软件包
使用npm,在Node.js项目中安装firebase-admin和google-cloud。
注1:我使用了admin,所以在创建Firebase项目之后,您需要转到:
Node.js >复制/粘贴生成的代码到您的项目中>单击"Generate“>下载生成的json到首选位置>用您刚刚生成的键的路径替换"path/to...AccountKey.json"注2:生成的密钥可以在firebase或google云凭据中重用。
第3步:设置防火墙
创建项目后,导入firebase-admin sdk:
代码应该如下所示,但其中包含了您的信息:
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert("/path/to/generated/json/here.json"),
databaseURL: "database-url-from-firebase"
});要找到databaseURL,转到Firebase中的“Storage”,并注意以gs:开头的URL,并将其复制/粘贴到databaseURL的value字段。
接下来,获取可以使用的数据库的引用:
var db = admin.database();
var ref = db.ref("/");
console.log('DB ref: ' + ref); //just to debug, if undefined, there's a problem.要了解有关读/写数据库的更多信息,请遵循Firebase自己的文档。
步骤4: Google计费设置
在Google上创建项目之后,添加计费信息;如果没有计费信息,则无法使用存储桶。
步骤5: Google-云存储设置
步骤6: Node.js中的Google
在你的index.js里
var gcloud = require('google-cloud');
var gcs = gcloud.storage({
projectId: 'paste-that-project-id-here',
keyFilename: 'paste-that-path-to-the-previously-downloaded-json-from-firebase-here'
});现在,您可以通过以下方式向存储区发送文件:
var bucket = gcs.bucket('bucket_name');
var remoteFile = bucket.file('somefile-inThisCaseASong.mp3');
var localFilename = '/Users/you/Music/somefile-inThisCaseASong.mp3';
bucket.upload(localFilename, function(err, file) {
if (!err) {
console.log('somefile-inThisCaseASong.mp3 is now in your bucket.');
} else {
console.log('Error uploading file: ' + err);
}
});步骤7:验证
如果该文件在Firebase存储和中可见,您就完成了!
https://stackoverflow.com/questions/41352150
复制相似问题