Firebase 实时数据库:如何获取父节点的值



假设我的数据库节点结构如下: 每个用户都设置他/她喜欢的用户名,他/她由Firebase身份验证分配的UID记录在用户名下。

"uid_match":
{
"username_1" : {
"uid" : "firebase_uid_1"
},
"username_2" : {
"uid" : "firebase_uid_1"
}

我正在尝试编写代码以通过火基 uid 提取用户名。它将查找某个 firebase uid 并返回用户名,该用户名有自己的 URL。

下面是我编写的代码的一部分,但它返回"/uid_match",而不是"/username_1"或"/username_2"。

let ref=firebase.database.ref('/uid_match');
let user=firebase.auth().currentUser;
ref.orderByChild('uid').equalTo(user.uid).once('value', function(snapshot) {
window.location.href='/'+snapshot.key;
})

问:提取"username_1"或"username_2"而不是"uid_match"的正确查询代码是什么?提前非常感谢。

您需要在snapshot内部迭代,以检索键username_1_username_2

let ref=firebase.database.ref('/uid_match');
let user=firebase.auth().currentUser;
ref.orderByChild('uid').equalTo(user.uid).once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot){
window.location.href='/'+childSnapshot.key;
});
});

最新更新