在我的firebase网络应用中,当新用户使用他们的电子邮件注册时,我会根据他们的电子邮件地址在根参考下创建一个节点
但问题是使用push()方法将每个新用户添加到数据库中,每个用户都使用如下所示的唯一键创建
- 的用户
----的 ASFTU578FE
--------- user:user1@email.com
----的 FDWWE36S46
--------- user:user2@email.com
----的 WERSRTT23W
--------- user:user3@email.com
现在我如何访问用户的路径,因为我不知道将为每个新用户创建的unque密钥
有没有办法在没有唯一密钥的情况下推送新用户,但我知道的密钥是user.displayName或user.email
答案 0 :(得分:14)
调用push
会生成一个包含自动计算密钥的位置。
要在您自行确定密钥的路径上写一个孩子,只需拨打child("key").set(value)
。
如果您将Firebase身份验证用户存储在数据库中,那么惯用的方法是将它们存储在他们的uid下。
var user = firebase.auth().currentUser;
var usersRef = firebase.database().ref("users");
if (user) {
usersRef.child(user.uid).set({
displayName: displayName,
email: email,
photoUrl: photoUrl,
emailVerified: emailVerified
});
}