扩展Firebase用户 [英] Extend Firebase User
问题描述
验证用户身份并更新FirebaseUser
表后,我需要保存其他额外的数据,例如年龄,性别,地址等.我想通过创建用户节点并连接到FirebaseUser
通过UID.我的工作方式正确吗?如果有人可以帮助我理解我,我将不胜感激.谢谢.
After authenticating the user and updating the FirebaseUser
table, I would need to save other extra data such as age, gender, address etc. I would like to use the Realtime Database by creating a user node and hooking to the FirebaseUser
through UID. Is my way of working correct? I would be grateful if somebody can help me understand. Thank you.
推荐答案
Firebase的常见做法是为您的用户创建helper class
(model class
,POJO class
),这是实现此目的的最核心方法:
A common practice in Firebase is to create for your user a helper class
(model class
, POJO class
) and this the corect way to achieve this:
public class User implements Serializable {
private String name;
private int age;
private String gender;
private String address;
private String email;
public User() {}
public User(String name, int age, String gender, String address, String email) {
this.name = name;
this.age = age;
this.gender = gender;
this.address = address;
this.email = email;
}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
public String getGender() {return gender;}
public void setGender(String gender) {this.gender = gender;}
public String getAddress() {return address;}
public void setAddress(String address) {this.address = address;}
public String getEmail() {return email;}
public void setEmail(String email) {this.email = email;}
}
因为您需要用户的唯一标识符,所以uid
是理想的选择.您可以使用以下代码行获取uid
:
Because you need a unique identifier for your users, the uid
is the perfect choice. You can get the uid
using the following line of code:
String uid = FirebaseUser.getInstance().getCurrentUser().getUid();
要将数据插入数据库,您需要创建User类的对象.因此,请使用以下代码:
To insert data into you database, you need to create an object of User class. So please use the following code:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
User user = new User("John", 25, "male", "101 Main Street", "john@email.com");
usersRef.child(uid).setValue(user);
在这种情况下,您只需使用公共的setter和getter即可从Firebase数据库中添加/获取数据.
In this you can simply use the public setters and getters to add/get data from your Firebase database.
您的数据库将如下所示:
Your database will look like something like this:
Firebase-root
|
--- users
|
--- uid1
|
--- name: "John"
|
--- age: 25
|
--- gender: "male"
|
--- address: "101 Main Street"
|
--- email: "john@email.com"
这篇关于扩展Firebase用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!