I have a collection with “grup” name and have a subcollection named “anggota”.
Please help me, how to display data by query referring to collection document and subcollection document.
Firestore collection:
I’ve tried with this query but it doesn’t work, the data doesn’t appear
JavaScript
x
db.collection("grup").document().collection("anggota")
.whereEqualTo("iduser", idUser)
.orderBy("updatetime", Query.Direction.DESCENDING)
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
List<DocumentSnapshot> list = value.getDocuments();
datalist.clear();
for (DocumentSnapshot d : list) {
final Modelfirestore c = d.toObject(Modelfirestore.class);
datalist.add(c);
}
mAdapterss.notifyDataSetChanged();
}
});
Advertisement
Answer
When you are using the following query:
JavaScript
👇
db.collection("grup").document().collection("anggota")
.whereEqualTo("iduser", idUser)
.orderBy("updatetime", Query.Direction.DESCENDING)
It means that you are creating a reference to a document with a random ID. Calling CollectionReferenc#document() method, without passing any arguments:
Returns a DocumentReference pointing to a new document with an auto-generated ID within this collection.
So to be able to query the documents within the anggota
subcollection you have to pass the document ID to the document()
method like this:
JavaScript
👇
db.collection("grup").document("8FDD...").collection("anggota")
.whereEqualTo("iduser", idUser)
.orderBy("updatetime", Query.Direction.DESCENDING)