扩展Firebase用户 [英] Extend Firebase User

查看:56
本文介绍了扩展Firebase用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

验证用户身份并更新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 classPOJO 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆