Firebase返回null但存在数据

时间:2018-09-09 23:00:52

标签: android firebase google-cloud-firestore

我花了数小时寻找我的代码未从该结构X检索归档的“ firstName”的原因::/

Firebase structure

在调试时,我可以看到Firebase检索与“ firstName”处于同一级别的所有其他字段,但是最后一个字段始终为null,即使其中包含有效数据也是如此。

Debugged object

这是我创建FirestoreRecyclerOptions的行:

FirestoreRecyclerOptions<X> optionsFirestore = new FirestoreRecyclerOptions.Builder<X>().setQuery(queryFirestore, X.class).build();

我是Android的初学者,感谢您的帮助/说明。

预先感谢您的帮助!

编辑:

这是我的查询Firestore:

queryFirestore = FirebaseFirestore.getInstance().collection("idea").whereEqualTo("uid", currentUser.getUid());

X类是一个包含数据结构的POJO:

public class X {

public String uid;
public String avatar;
public String firstName;
public String lastName;
public Integer age;
public String title;
public String category;
public String location;
public String comment;

public X() {
}

public X(String uid, String avatar, String firstName, String lastName, Integer age, String title, String category, String location, String comment) {
    this.uid = uid;
    this.avatar = avatar;
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
    this.title = title;
    this.category = category;
    this.location = location;
    this.comment = comment;
}

public String getUid() {
    return uid;
}

public void setUid(String uid) {
    this.uid = uid;
}

public String getAvatar() {
    return avatar;
}

public void setAvatar(String avatar) {
    this.avatar = avatar;
}

public String getFirstName() {
    return firstName;
}

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

public String getLastName() {
    return lastName;
}

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

public Integer getAge() {
    return age;
}

public void setAge(Integer age) {
    this.age = age;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getCategory() {
    return category;
}

public void setCategory(String category) {
    this.category = category;
}

public String getLocation() {
    return location;
}

public void setLocation(String location) {
    this.location = location;
}

public String getComment() {
    return comment;
}

public void setComment(String comment) {
    this.comment = comment;
}
}

1 个答案:

答案 0 :(得分:1)

问题出在setFirstName()中:

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

尝试将其更改为:

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

这就是为什么...