为了账号安全,请及时绑定邮箱和手机立即绑定

电子邮件作为 Firebase 中的 ID

电子邮件作为 Firebase 中的 ID

BIG阳 2021-11-17 15:18:13
我可以像在 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(因为电子邮件无论如何都是独一无二的。)
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您不能使用电子邮件作为唯一键,因为它包含.数据库中不允许的点。


由于您使用了 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


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信