[英]Is there a way to store data values from firestore into an array?
我试图在每个文档的两个特定字段中获取数据,其中一个字段是 integer,另一个是字符串。 我希望每个字段分别存储在一个数组中。
db.collection("Activity")
.whereEqualTo("plan_id", plan_id)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<Long> progressList = new ArrayList<>();
List<String> titleList = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.get("progress"));
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
我试过了
int[] prog = (int[]) document.get("progress");
String[] title = (String[]) document.get("title");
但没有运气...
我不熟悉 Firestore,但QueryDocumentSnapshot
似乎类似于Map<String, Object>
。 以下代码片段显示了如何将这些值存储到代码中声明的List
中 - 分别是 progressList 和 titleList。
List<int> progressList = new ArrayList<>();
List<String> titleList = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
progressList.add(Integer.valueOf(document.get("progress").toString()));
titleList.add(document.get("title").toString());
}
而如果你仍然想使用Array
来存储值,你可以使用API ArrayList.toArray()
如下:
int[] prog = new int[progressList.size()];
prog = progressList.toArray(prog);
String[] title = new String[titleList.size()];
title = titleList.toArray(title);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.