在Firebase中作为ID发送电子邮件

时间:2018-10-14 15:20:22

标签: java android firebase firebase-realtime-database

我可以在Firebase中使用wbXL.SaveAs(Filename:= "WorkBookName") 的用户电子邮件来代替push()id生成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);

}

由于我使用过Firebase身份验证,因此用户已注册,但他的信息未添加到Firebase数据库中。

顺便说一句,在尝试此操作之前,我正在使用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; } } 来获取push(),并且一切正常,但是我希望将电子邮件作为id而不是生成新的id (因为电子邮件仍然是唯一的。)

1 个答案:

答案 0 :(得分: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

也请检查一下:

Why use UID in Firebase? Should I use it

相关问题