我可以在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
(因为电子邮件仍然是唯一的。)
答案 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
也请检查一下: