Firebase PushID循环

时间:2018-10-31 23:27:27

标签: javascript firebase ionic-framework firebase-realtime-database

我正在尝试遍历数据库,并从“ eventList”返回与当前用户ID匹配的所有事件。我的问题是我在简单返回postID列表时遇到了麻烦。结果是我得到“ eventList”或“ undefined”。如何遍历数据库并在“ eventList”下返回postID?

我具有以下数据库结构:

{
  "eventList" : {
    "-LQ68rGmj_OYShda3tV9" : {
      "name" : "Christmas",
      "user" : "8eZcncLHPCWtuuhw90HRr79f0VO2"
    },
      "-L23Tr87ejdjh9osnG" : {
      "name" : "easter",
      "user" : "7gjsuhv84mvkkslv0jlssvghdasd"
    }

  },
  "userProfile" : {
    "8eZcncLHPCWtuuhw90HRr79f0VO2" : {
      "firstName" : "M"
    }
  }
}

这是我一直在使用的代码:

this.postRef = firebase.database().ref('/eventList');
this.postRef.once("value")
  .then(function(snapshot) {
    var key = snapshot.key; // null


  });
  console.log(this.postRef.key);

1 个答案:

答案 0 :(得分:1)

尝试在节点内循环并获取每个值,并在promise中打印数据,因为.once处理异步工作,并且如果您尝试将密钥获取到.then之外,则该键将为null,如果承诺失败,则处理捕获错误。

 this.postRef = firebase.database().ref('/eventList');
    this.postRef.once("value")
      .then(function(snapshot) {

     const eventData = snapshot.forEach(data => {
     var key = data.key; 
     console.log(this.postRef.key);
      });

     return eventData;

 }).catch(error => {
         console.log('Error trying to fetch the data.');
        });