我試圖獲取每個文檔中兩個特定字段中的數據,其中一個字段是整數,另一個字段是字符串。我希望每個字段分別存儲在一個數組中。 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
提交
取消