电子邮件作为 Firebase 中的 ID

我可以像在 Firebase 中一样使用用户的电子邮件,而不是使用push()生成idfor吗?child(user)id


我试过这个:


    private void userData(String emai1, String pass, String bal) {


    String id = emai1;

    int balance=Integer.valueOf(String.valueOf(bal));

    User user1 = new User(id,emai1,pass,balance);

    databaseReference.child(id).setValue(user1);


}

用户类:


public class User {


 private String email;

 private int balance;

 private String password;

 private String id;


public User( String id,String email, String password , int balance) {

    this.email = email;

    this.balance = balance;

    this.password = password;

    this.id = id;

}




public String getEmail() {

    return email;

}


public void setEmail(String email) {

    this.email = email;

}


public int getBalance() {

    return balance;

}


public void setBalance(int balance) {

    this.balance = balance;

}


public String getPassword() {

    return password;

}


public void setPassword(String password) {

    this.password = password;

}


public String getId() {

    return id;

}


public void setId(String id) {

    this.id = id;

}


}

由于我使用了 firebase auth,用户被注册但他的信息没有被添加到 firebase 数据库中。


顺便说一句,在尝试此之前,我曾经使用push()过id并且一切正常,但我想要电子邮件id而不是生成新的id(因为电子邮件无论如何都是独一无二的。)


BIG阳
浏览 132回答 1
1回答

月关宝盒

您不能使用电子邮件作为唯一键,因为它包含.数据库中不允许的点。由于您使用了 firebase 身份验证,因此只需使用用户唯一 ID 而不是 push() FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser(); String userId=user.getUid();这将为您提供 ID,然后您也可以在数据库中使用该 ID。DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users").child(userId);ref.child("name").setValue("name_here");ref.child("email").setValue("email_here");那么你会有:users  userId    name: name_here    email: email_here
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java