使用push()方法创建没有唯一键的新子位置

时间:2017-03-19 10:52:14

标签: firebase firebase-realtime-database

在我的firebase网络应用中,当新用户使用他们的电子邮件注册时,我会根据他们的电子邮件地址在根参考下创建一个节点

但问题是使用push()方法将每个新用户添加到数据库中,每个用户都使用如下所示的唯一键创建

- 的用户

----的 ASFTU578FE

--------- user:user1@email.com

----的 FDWWE36S46

--------- user:user2@email.com

----的 WERSRTT23W

--------- user:user3@email.com

现在我如何访问用户的路径,因为我不知道将为每个新用户创建的unque密钥

有没有办法在没有唯一密钥的情况下推送新用户,但我知道的密钥是user.displayName或user.email

1 个答案:

答案 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
  });
}