在这个示例中,我不断得到错误:
TypeError: firebase.storage is not a function
从我的代码中的这一行:
var storageRef = firebase.storage().ref();
(当我尝试从firebase的npm站点链接的存储指南中初始化存储时,我会得到相同的错误。)
在我的节点中。js项目,我包括以下库:
const firebase=require('firebase')
var admin=require('firebase-admin')
const fs=require('fs')
创建了对数据库的引用...所以我知道我已经正确地配置了Firebase和firebase-database。但是我被困在< code >存储上,并且已经尝试了< code>admin.storage()。ref()和< code>firebase.storage()。ref()和< code>firebase.storage()。ref("/")并显示相同的错误消息。到目前为止,我已经成功地读写了firebase数据库,用< code > var db = admin . database()
然后用< code>var ref = db.ref("/")
我也试过:
var storage = firbase.storage();
var storageRef = storage.ref();
和
const app = firebase.initializeApp(config);
var storage = app.storage();
以及< code>ref()的void参数< code>()和< code >“/”...但是有同样的信息,却无济于事。
我正在使用:
要成功创建对存储的引用,我必须执行哪些操作?
谷歌云
。Firebase和Google Cloud的参考和指南截至今天尚未反映这一点。firebase-admin
SDK,因此我目前不必弄乱用户身份验证。以创建单个节点。使用Firebase和Google Cloud的js项目。为什么?Firebase有一个有用的数据库和其他功能,Google Cloud允许云文件存储和检索。
创建Firebase和Google云(存储)项目。
使用npm,在节点中安装
项目。firebase admin
和google cloud
。js
注1:我使用了管理SDK,因此在创建Firebase项目后,您需要转到:
注意2:生成的密钥可以在firebase或google-cloud凭证中重用。
创建项目后,导入 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"
});
要查找数据库URL,请转到Firebase中的“存储”,并记下以gs:
开头的URL,然后将其复制/粘贴到数据库URL的值字段中。
接下来,获取对可以使用的数据库的引用:
var db = admin.database();
var ref = db.ref("/");
console.log('DB ref: ' + ref); //just to debug, if undefined, there's a problem.
要了解有关读取/写入数据库的更多信息,请遵循 Firebase 自己的文档。
在Google Cloud上创建项目后,添加计费信息;没有计费信息,无法使用存储桶。
在您的索引中.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);
}
});
如果该文件在Firebase Storage和Google Cloud Storage中可见,则大功告成!
已弃用,请参阅下文:
根据这个答案,不是firebase存储,而是在节点中。js,googlecloud
package存储应该使用,这个答案似乎应该证实这一点。代码示例:
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')
还可以查看文档了解更多信息。
我也面临同样的问题。在我的例子中,除了Firebase core之外,我还需要包括存储模块。
import firebase from 'firebase/app';
import 'firebase/storage'; // <----
firebase.initializeApp({
...
});
const storageRef = firebase.storage().ref();
(npm Firebase v5.0.4)
问题内容: 当我试图在React版本15.2.0中使用这两个函数时,我在代码中发现了一个问题,尽管如此,我找到了一种解决方法,但是我想知道是否有更好的解决方案。 因此,每当我尝试运行index.html文件时,都不会显示任何内容,但是控制台会出现第一个错误: React.render不是function 。我发现发生这种情况是因为新版本的React需要使用react-dom,即 现在问题已解决,但
问题内容: 我正在为无法解决的错误而烦恼。我有以下内容; JSON格式 和下面的jQuery 但是我收到一个错误,认为map.data未定义为函数?看着它,我不知道什么是行不通的,因为我已将其从以前使用的代码复制到新项目中。唯一不同的是JSON源。上一个没有[]括号之前的部分。这是什么让我失望吗? 问题答案: 对象,在JavaScript没有方法,它只是为数组,。 因此,为了使您的代码正常工作,请
问题内容: 我有这段代码可用于从Arduino接收数据,但我想将数据发送回Arduino并在客户端页面上获得响应。我添加了侦听功能,但是从客户端页面发送数据时却不断获取信息。 test.js 问题答案: 您的价值不是应有的价值。 通常的做事方式是这样的: 但是我猜你的价值是这样的: 那不是同一回事。那就是模块句柄。但是,当您这样做时: 然后,是一个socket.io实例。您可以将侦听器绑定到实例,
问题内容: 我正在尝试使用来运行任何按钮的功能。我在Firebug中遇到错误 document.getElementByClass不是函数 这是我的代码: 问题答案: 您可能是想(然后从结果节点列表中获取第一项): 您可能仍然会收到错误 不是功能 但是,在较旧的浏览器中,如果需要支持那些较旧的浏览器,则可以提供后备实现。
编辑:阅读问题末尾的部分! 我的服务代码: 在我的组件中,我有这个提交功能: 这里和这里都有类似的错误。答案总是包含rxjs函数,但是我这样做了,所以我不太确定,为什么会出现这个错误。 编辑: 因此,实际的问题不是这个函数,而是主应用程序中我的路线前缺少“/”。js文件。解决了这个问题之后,问题就消失了。
问题内容: 我有以下组件,该组件维护在特定元素上触发事件时更新的状态,并且在更新状态时将其作为道具传递给另一个组件。我目前正在尝试为什么我得到以下错误“ this.setState不是函数”,它很可能没有绑定到正确的上下文。但是我不确定,我这样做正确吗? 编辑: 我只是意识到上下文会在“onreadyStateChange”函数时发生更改,所以我在searchGif中做了以下操作 问题答案: 您正