简单的firebase快递请求不起作用

时间:2016-10-10 05:38:42

标签: node.js firebase firebase-realtime-database

我按照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 KEY\n-----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);
});

谢谢!

1 个答案:

答案 0 :(得分:0)

为了使用获取的值,需要使用.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);
});