gpt4 book ai didi

android - 将 DocumentSnapshot 数据转换为列表

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

我想从文档“list_of_clients”中读取每个对象列表并将其导出到我创建的自定义列表

在实时数据库中有一个函数叫做 GenericTypeIndicator 这可以帮助您获取值,这与我想要的类似,但是在 Cloud FireStore 上没有这样的功能

我是 android 的新手,我不知道我还能解释多少但这里有一些照片:

这是我的数据库: mydb

这是我的 user_list.java

private String user_addr;
private String user_name;
private String user_phone;


public user_list(String user_addr, String user_name, String user_phone) {
this.user_addr = user_addr;
this.user_name = user_name;
this.user_phone = user_phone;
}

public user_list() {

}

public String getUser_phone() {
return user_phone;
}

public void setUser_phone(String user_phone) {
this.user_phone = user_phone;
}

public String getUser_name() {
return user_name;
}

public void setUser_name(String user_name) {
this.user_name = user_name;
}

public String getUser_addr() {
return user_addr;
}

public void setUser_addr(String user_addr) {
this.user_addr = user_addr;
}

我尝试了什么:

        db.collection("clients").document("list_of_clients")
.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
//if read successful

DocumentSnapshot document = task.getResult();

List<user_list> messages = document.getData();

Toast.makeText(getApplicationContext(), document.getId() + " => " + document.getData(), Toast.LENGTH_LONG).show();

} else {
//eroare
}
}
});

最佳答案

要使其正常工作,请参阅以下步骤。因此,为了正确反序列化字段,请考虑使用如下所示的模型类:

public class UserList {
private String userAddr, userName, userPhone;

public UserList() {}

public UserList(String userAddr, String userName, String userPhone) {
this.userAddr = userAddr;
this.userName = userName;
this.userPhone = userPhone;
}

public String getUserAddr() {return userAddr;}

public String getUserName() {return userName;}

public String getUserPhone() {return userPhone;}
}

看到命名约定了吗? Firebase 将始终关注看起来像 userAddr 的字段和看起来像 getUserAddr() 的公共(public) getter。

要以正确的方式将 UserList 对象添加到您的 Cloud Firestore 数据库,请使用以下代码:

UserList userList = new UserList("Bolintin Vale", "Bogdan", "0251206260");
String docId = rootRef.collection("clients").document().getId();
rootRef.collection("clients").document(docId).set(userList);

要真正读取数据,请使用以下代码:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
rootRef.collection("clients").document("pu8NKFPNUKYgcy0yOitW").get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
UserList userList = documentSnapshot.toObject(UserList.class);
Log.d(TAG, userList.getUserName());
}
});

如您所见,我在我的代码中使用了之前生成的 pu8NKFPNUKYgcy0yOitW id。输出将是:

Bogdan

英国电影学院! ;)

关于android - 将 DocumentSnapshot 数据转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49266445/

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