gpt4 book ai didi

java - 如何将对象从 Firestore 转换为数组列表?

转载 作者:行者123 更新时间:2023-11-29 22:46:23 24 4
gpt4 key购买 nike

当我创建一个用户时,我有一个列表,其中包含该用户需要的图像的 Urls。

喜欢

 final List<String> picturesUrls = pictureUrl; 

我的用户对象是




import java.util.List;

public class User {


public List<String> picturesUrls;


public User() {

}

public User(List<String> picturesUrls) {

this.picturesUrls = picturesUrls;


}

}

一切正常,但是当我想从 FireStore 获取这些数据时

  db.collection("Users").whereEqualTo("email",user.getEmail())
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()){
for(QueryDocumentSnapshot document: task.getResult()){
Object obj = document.get("picturesUrls");
actualUser = new User(
picturesUrls
);
}
}
}
});

但是在 User 模型中,picturesUrls 是 List 的类型,FireStore 给我的是一个对象。目前在该列表中它只有 1 个字符串。我如何将该对象转换为列表以创建新的用户对象,然后循环进入该列表以获取最后一个值(“实际个人资料图片”)

提前致谢!

最佳答案

首先将DocumentSnapshot 转换为User 类的实例。您必须在 User 类中初始化 getter。然后你可以使用 getter 来获取 url 列表。所以你的代码将是这样的:

  db.collection("Users").whereEqualTo("email",user.getEmail())
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {

for(DocumentSnapshot ds : queryDocumentSnapshots) {
User user = ds.toObject(User.class);
List<String> urlList = user.getPicturesUrls();
}

}
});

关于java - 如何将对象从 Firestore 转换为数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58364370/

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