【问题标题】:Firebase returning null but data existsFirebase 返回 null 但数据存在
【发布时间】:2018-09-10 14:31:19
【问题描述】:

我花了几个小时寻找我的代码没有从这个结构 X 中检索归档的“firstName”的原因:/

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

这是我正在创建 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;
}
}

【问题讨论】:

  • 很难掌握检查您的参考是否正确。
  • 这里有很多缺失的信息。请编辑问题以显示您如何构建queryFirestore,以及X 类的代码。
  • 我通过添加 X 类的代码和我构建 Firestore 查询的行来编辑我的问题。如果您需要其他有助于理解问题的信息,请告诉我。
  • @ʍѳђઽ૯ท 是的,agelastName 两个字段均为空,在调试中显示为空。我的问题是字段firstName 包含未检索到的数据:/

标签: android firebase google-cloud-firestore


【解决方案1】:

问题出在setFirstName():

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

尝试将其更改为:

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

这就是为什么...

【讨论】:

  • 就是这样!!我修好了,现在可以工作了!但是 setter 中的错误如何导致 getter 出现故障? O_o 非常感谢!
  • 如果它是由 AS 自动生成 是的,很奇怪。顺便说一句,不错吗? :) 快乐的编码朋友。
  • 我四处张望,但我的眼睛并没有注意到那个二传手。你在这里做得很棒:))再次感谢!
  • 是的,一开始很奇怪,因为代码完全一样,只需要注意一下。很高兴帮助:) YW。
猜你喜欢
  • 2018-12-18
  • 1970-01-01
  • 2021-06-07
  • 2019-07-07
  • 2018-09-14
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多