firebase父ID返回而不是子ID

时间:2017-07-18 18:13:54

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

我是firebase的新手,我第一次使用离子来开发聊天应用程序。我有一个类似结构的数据库,如下所示

tutors:
"Ben Clarke":
    email:"ben@yahoo.com"
    name: ben clarke
"James Gall":
   email:james@yahoo.com
   name: james gal

我正在尝试使用电子邮件获取导师的ID。我已经尝试使用我在这里找到的指南和firebase文档来执行此操作:

`firebase.database().ref('tutors').orderByChild('email').equalTo(this.myTutor)
  .once('value')
  .then(snapshot => {
    var records = snapshot.key;
    var chilkkey= snapshot.val();
    this.tutorID=records;
    this. uid = chilkkey;
  })

`我希望结果能给我'Ben Clarke'这个孩子的身份证,但它会返回'导师'这是父ID。请知道我做错了什么。感谢

1 个答案:

答案 0 :(得分:1)

对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

如果您随后在快照请求key上,则它是您最初运行查询的位置的键。要获取与查询匹配的特定子/子项的键,您需要循环结果:

firebase.database().ref('tutors').orderByChild('email').equalTo(this.myTutor)
  .once('value')
  .then(snapshot => {
    snapshot.forEach(function(child) {
      console.log(child.key);
    });
  })