我目前有以下节点:
基本上我想要的是通过uid参数搜索注册表。我不明白的是,他们告诉我我不应该通过查询来做到这一点,那又是什么呢?我尝试了以下方法:
firebase
.database()
.ref('nuevosUsuario')
.child(user.uid)
.once('value')
.then(snapshot =>
console.log(snapshot.val())
);
pero me imprime en consola null
预先谢谢您,我是Firebase的新手。
答案 0 :(得分:0)
您的JSON结构存储用户信息,它在所谓的推入ID(通过调用push()
或childByAutoId()
生成的键)下存储每个用户的信息。您正在尝试查询此结构以根据用户的UID查找用户,该用户ID存储在每个用户的属性中。唯一的方法是使用数据库查询,例如:
firebase.database()
.ref('nuevosUsuario')
.orderByChild("uid")
.child(user.uid)
.once('value')
.then(snapshot => {
snapshot.forEach(userSnapshot => {
console.log(snapshot.val())
});
});
您需要在此处执行循环,因为可能有多个节点为其UID属性具有正确的值。
如果在nuevosUsuario
下每个用户在逻辑上只能有一个节点,则最好将用户信息存储在用户的UID下作为键,而不是使用推送ID。
所以您将得到一个类似的结构:
"nuevosUsuario": {
"SYFW1u808weaGEf3fW...": {
"appellido": "PRUEBA",
"correo": "..."
...
}
}
这有一些优点: