我遵循node.js指南来设置firebase应用程序。这是我的app.js
文件中的代码。所有的信息都是正确的,但我没有从快照键得到一个值。事实上,storesRef.once()
从未打印"测试"。没有抛出错误,所以我不确定我哪里出错了。
// init firebase
firebase.initializeApp({
serviceAccount: {
projectId: "wrapper",
clientEmail: "wrapper@wrapper.iam.gserviceaccount.com",
privateKey: "-----BEGIN PRIVATE KEY-----nMY KEYn-----END PRIVATE KEY-----n"
},
databaseURL: "https://wrapper.firebaseio.com"
});
// test get
var db = firebase.database();
var storesRef = firebase.database().ref('Stores/');
storesRef.once('value', function(snapshot) {
console.log(snapshot.key);
console.log("test");
},function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
谢谢!
为了使用获取的值,需要使用.val()方法提取它们。
来自firebase文档:
firebase.database.DataSnapshot
DataSnapshot包含来自数据库位置的数据。
每当您从数据库读取数据时,您都会收到作为DataSnapshot的数据。DataSnapshot被传递给您使用on()或once()附加的事件回调。可以通过调用val()方法将快照的内容提取为JavaScript对象。或者,您可以通过调用child()来遍历快照以返回子快照(然后您可以对其调用val())。
storesRef.once('value', function(snapshot) {
console.log(snapshot.val().key); // change this
console.log("test");
},function (errorObject) {
console.log("The read failed: " + errorObject.code);
});