我正在尝试获取发件人的子级值,如果该值等于当前登录的用户。.但是我无法获得相同的值。
数据库的JSON如下:-
{
"requests" : {
"YJ5qTg2uuqQeicsWCTCNQMv4OwL2" : {
"-Lecn9gN5puugx5z-PKX" : {
"sender" : "0XWmi1Izr6XHYvqxamfNHDONSVA2",
"status" : "Pending"
}
}
}
}
这是我尝试过的方法,但我总是会得到空值。
this.firebase.database().ref('/requests').orderByChild('sender').equalTo(firebase.auth().currentUser.uid).on('value',(snapshot) =>
{
console.log(snapshot.val());
})
但是每次我变成空的时候。
我确实知道我应该提供孩子的地址以联系大孩子。
this.firebase.database().ref('/requests').orderByChild('-Lecn9gN5puugx5z-PKX/status').equalTo('Pending').on('value',(snapshot) =>
{
console.log(snapshot.val());
})
如果我明确提供子地址,那么我将获得所需的值。
答案 0 :(得分:0)
对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您的回调将需要通过用forEach
循环结果的子节点来处理该列表。像这样:
this.firebase.database().ref('/requests')
.orderByChild('-Lecn9gN5puugx5z-PKX/status').equalTo('Pending').on('value',(snapshot) => {
snapshot.forEach((child) => {
console.log(child.key+': '+child.val());
})
})