簡體   English   中英

有沒有辦法將 firestore 中的數據值存儲到數組中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM