Как я вижу на вашем скриншоте, у вас есть схема, которая выглядит следующим образом:
Firestore-root
|
--- Comment (collection)
|
--- docId
|
--- content: "hfjnncjf"
Если вы хотите получить все Comment
объекты, вам нужно использовать только CollectionReference
:
CollectionReference commentRef = firestore.collection("Comment");
commentRef.addSnapshotListener(/* ... */);
Что неправильно в вашем коде, так это добавление вызова .collection("Comment")
к вашему commentRef
объекту. Что вы делаете, вы предполагаете, что у вас есть подколлекция в вашем commentRef
документе, что неправильно. У вас нет такой подколлекции.
Если вы хотите получить один комментарий, вам следует использовать следующую строку кода:
DocumentReference commentRef = firestore.collection("Comment").document(postKey);
Но без итерации, потому что вы получите только один документ.
Редактировать:
Чтобы получить значение вашего свойства content
и отслеживать изменения в режиме реального времени, используйте следующие строки: код:
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
DocumentReference commentRef = firestore.collection("Comment").document("ZQMqIrx19fftjO3ZeSzkuEw87MY2");
commentRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot snapshot, @Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w(TAG, "Listen failed.", e);
return;
}
if (snapshot != null && snapshot.exists()) {
Log.d(TAG, snapshot.getString("content"));
}
}
});
Вывод в вашем logcat будет:
hfjnncjf