比方说,我的数据库节点结构如下:每个用户设置自己偏好的用户名,由Firebase auth分配的他/她的UID记录在该用户名下。
"uid_match":
{
"username_1" : {
"uid" : "firebase_uid_1"
},
"username_2" : {
"uid" : "firebase_uid_1"
}
我正在尝试编写代码以通过firebase 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”的正确查询代码是什么?提前谢谢。
答案 0 :(得分:1)
您需要在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;
});
});