gpt4 book ai didi

java - 如何从 Firestore 获取我的模型 (POJO) 类的对象?

转载 作者:行者123 更新时间:2023-11-30 06:04:51 25 4
gpt4 key购买 nike

我正在测试 Firestore 以使其更熟悉并在我的项目中实现,但由于某种原因我无法从数据库中获取 POJO 类的对象。我知道我可以获取 Map 数据,但我想要 POJO 类。我遵循了许多答案来帮助我开始,但我无法解决这个问题。这是我的代码:

mDocumentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
UserPOJO pojo = (UserPOJO) task.getResult(); //Error
}
}
});

getResult() 没有帮助我。所以我已经用 POJO 添加了我的数据,我的问题是,如何将其作为 POJO 返回?

我的 POJO:

public class UserPOJO {
private String name, email, id, college, state;
private int age, number;

public UserPOJO() {
}

public UserPOJO(String name, String email, String id, String college, String state, int age, int number) {
this.name = name;
this.email = email;
this.id = id;
this.college = college;
this.state = state;
this.age = age;
this.number = number;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

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

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getCollege() {
return college;
}

public void setCollege(String college) {
this.college = college;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

public int getAge() {
return age;
}

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

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}
}

我的错误:

错误:类型不兼容:DocumentSnapshot 无法转换为 UserPOJO

最佳答案

task 对象上调用 getResult() 方法时,无法获取 UserPOJO 对象,因为它永远不会返回这样的对象,它将返回一个 DocumentSnapshot 对象。即使您将其转换为 UserPOJO 对象,它也对您没有任何帮助。 Java 中无法将 DocumentSnapshot 对象转换为 UserPOJO,因为它们之间没有关系。

来自official documentation ,这就是如何从数据库获取 UserPOJO 类的对象:

mDocumentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
//Get an object of type UserPOJO
UserPOJO pojo = document.toObject(UserPOJO.class);
}
}
}
});

你看,解决这个问题的关键是使用 DocumentSnapshot.toObject()'s方法。

关于java - 如何从 Firestore 获取我的模型 (POJO) 类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51546349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com