繁体   English   中英

向Firebase Realtime数据库添加数据时出现问题

[英]Issues adding data to Firebase Realtime database

所以我在Firebase中遇到一个奇怪的问题,而且我似乎找不到任何有关它的信息。 我正在尝试将用户对象添加到数据库。 当我检查Firebase时,它使用正确的用户名创建了一个对象,但没有添加任何字符串类型的属性,并且两个double属性均为零。 我暂时关闭了用户身份验证,直到可以正常工作为止。 以下是相关代码:

public class User {

    public String email;
    public String password;
    public String firstName;
    public String lastName;
    public String dob;
    public double height;
    public double weight;
    public String gender;

    public User()
    {

    }

    public User(String email, String password, String firstName, String lastName, String DoB, double height, double weight, String gender) {

    }

    public String getEmail()
    {
        return email;
    }

    public String getPassword()
    {
        return password;
    }

    public String getFirstName()
    {
        return firstName;
    }

    public String getLastName()
    {
        return lastName;
    }

    public String getdob()
    {
        return dob;
    }

    public double getHeight()
    {
        return height;
    }

    public double getWeight()
    {
        return weight;
    }

    public String getGender()
    {
        return gender;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public void setPassword(String password)
    {
        this.password = password;
    }

    public void setFirstName(String firstName)
    {
        this.firstName = firstName;
    }

    public void setLastName(String lastName)
    {
        this.lastName = lastName;
    }

    public void setdob(String dob)
    {
        this.dob = dob;
    }

    public void setHeight(double height)
    {
        this.height = height;
    }

    public void setWeight(double weight)
    {
        this.weight = weight;
    }

    public void setGender(String gender)
    {
        this.gender = gender;
    }
}

final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersRef = database.getReference();

...

private void registerUser() {

    usersRef.child("testuser").setValue(new User("test@test.com", "password", "First", "Last", "2000/01/01", 172, 75, "Male"));

完成此操作后,如果我检查Firebase,它会显示“用户”,并带有一个名为“ testuser”的对象,但测试用户的唯一属性是身高和体重,均值为0。如果我将身高和体重更改为字符串而不是双精度,根本不添加任何内容。 据我所知,所有内容都与Firebase文档几乎相同,因此我很困惑。 有人看到过这样的东西吗?

首先,从您的User类声明中删除static关键字。 只能是:

public class User {}

添加Firebase所需的无参数构造函数。

public User() {}

还添加您所有字段的getter和setter。

您的模型类应如下所示:

public class User {
    private String email;
    private String password;
    private String firstName;
    private String lastName;
    private String dob;
    private double height;
    private double weight;
    private String gender;

    public User() {}

    public User(String email, String password, String firstName, String lastName, String dob, double height, double weight, String gender) {
        this.email = email;
        this.password = password;
        this.firstName = firstName;
        this.lastName = lastName;
        this.dob = dob;
        this.height = height;
        this.weight = weight;
        this.gender = gender;
    }

    public String getEmail() {return email;}

    public String getPassword() {return password;}

    public String getFirstName() {return firstName;}

    public String getLastName() {return lastName;}

    public String getDob() {return dob;}

    public double getHeight() {return height;}

    public double getWeight() {return weight;}

    public String getGender() {return gender;}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM