2 回答

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對象。

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;
}
}
}
});
添加回答
舉報