亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Fire Store 中查詢集合的所有文檔

如何在 Fire Store 中查詢集合的所有文檔

智慧大石 2022-11-02 10:15:13
我正在嘗試在 Google 地圖上顯示來自 Cloud Firestore 的信息。我可以使用以下代碼從文檔中應用標記,但是我有多個文檔需要顯示其中的數據。下面是當前代碼,正如我所說,它成功地顯示了一個帶有來自一個文檔的信息的標記,但是每個文檔都包含需要在地圖上顯示的不同位置。    private void addMapMarkers(){    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();    CollectionReference pointsRef = rootRef.collection("notes");    DocumentReference docRef = pointsRef.document("u20UmWSrlP0EiZH9CNP3");    docRef.get().addOnCompleteListener(new     OnCompleteListener<DocumentSnapshot>() {        @Override        public void onComplete(@NonNull Task<DocumentSnapshot> task) {            if (task.isSuccessful()) {                DocumentSnapshot document = task.getResult();                if (document.exists()) {                    String latitude = document.getString("Latitude");                    String longitude = document.getString("Longitude");                    String name = document.getString("Attraction Name");                    float lat = Float.parseFloat(latitude);                    float lng = Float.parseFloat(longitude);                    LatLng latLng = new LatLng(lat, lng);                    mMaps.addMarker(new                     MarkerOptions().position(latLng).title(name));                }            }        }    });}數據庫結構如下:
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

要獲取所有文檔的值latitude和longitude屬性,只需使用以下代碼行:


FirebaseFirestore rootRef = FirebaseFirestore.getInstance();

CollectionReference notesRef = rootRef.collection("notes");

notesRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {

    @Override

    public void onComplete(@NonNull Task<QuerySnapshot> task) {

        if (task.isSuccessful()) {

            for (QueryDocumentSnapshot document : task.getResult()) {

                float lat = Float.parseFloat(document.getString("Latitude"));

                float lng = Float.parseFloat(document.getString("Longitude"));

                String name = document.getString("Attraction Name");

                LatLng latLng = new LatLng(lat, lng);

                mMaps.addMarker(new MarkerOptions().position(latLng).title(name));

            }

        }

    }

});

所以解決這個問題的關鍵是使用task.getResult()that可以幫助你遍歷QueryDocumentSnapshot對象。


查看完整回答
反對 回復 2022-11-02
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

如果您想要所有文檔數據,您可以嘗試以下操作:-


db.collection("Chat").addSnapshotListener(new EventListener<QuerySnapshot>() {

            @Override

            public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {

                for (DocumentChange dc : queryDocumentSnapshots.getDocumentChanges()) {

                    switch (dc.getType()) {

                        case ADDED:

                            //  Log.d("TAG", "New Msg: " + dc.getDocument().toObject(Message.class));


                            break;

                        case MODIFIED:


                            //      Log.d("TAG", "Modified Msg: " + dc.getDocument().toObject(Message.class));

                            break;

                        case REMOVED:

                            //     Log.d("TAG", "Removed Msg: " + dc.getDocument().toObject(Message.class));

                            break;

                    }

                }

            }

        });


查看完整回答
反對 回復 2022-11-02
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號