我试图获取每个文档中两个特定字段中的数据,其中一个字段是整数,另一个字段是字符串。我希望每个字段分别存储在一个数组中。 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");但没有运气...
1 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
我对 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);
添加回答
举报
0/150
提交
取消