有没有办法将 firestore 中的数据值存储到数组中?

我试图获取每个文档中两个特定字段中的数据,其中一个字段是整数,另一个字段是字符串。我希望每个字段分别存储在一个数组中。


 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");

但没有运气...


元芳怎么了
浏览 96回答 1
1回答

猛跑小猪

我对 Firestore 不熟悉,但似乎QueryDocumentSnapshot与Map<String, Object>. 以下代码片段显示了如何将这些值分别存储到List代码中声明的progressList 和titleList 中。List<int> progressList = new ArrayList<>();List<String> titleList = new ArrayList<>();for (QueryDocumentSnapshot document : task.getResult()) {&nbsp; &nbsp; progressList.add(Integer.valueOf(document.get("progress").toString()));&nbsp; &nbsp; 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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java