我是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。请知道我做错了什么。感谢
答案 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);
});
})