Xwingoga06
Xwingoga06

Reputation: 101

How i can query my subCollection on firestore?

I wanna query only the users with the subcollection Favoris (not everyUsers had a favoris subcollection) and I wanna query only the document from favoris with the same id as the current user.

I did the following function but I have no document found. I'm supposed to have one. Did I forget something?

const getFavoris = () => {
  userDB.doc()
        .collection('favoris')
        .where('id', '==', currentUser.id)
        .get()
        .then((querySnapshot) => {
          console.log('cmb', querySnapshot.size);
          querySnapshot.forEach((doc) => {
            console.log(doc.id);
          });
        });
};

also an example of my DB user and subcollection Favoris

enter image description here

enter image description here

Upvotes: 0

Views: 40

Answers (1)

Alex Mamo
Alex Mamo

Reputation: 1

Since "favoris" is a subcollection, instead of using a collection() call, you should use a collectionGroup() query like in the following lines of code:

const getFavoris = () => {
      firebase.firestore()
      .collectionGroup('favoris') //👈
      .where('id', '==', currentUser.id)
      .get()
      .then((querySnapshot) => {
        console.log('cmb', querySnapshot.size);
        querySnapshot.forEach((doc) => {
          console.log(doc.id);
        });
      });
  };

Besides that, don't forget to create the corresponding index.

Upvotes: 1

Related Questions