Firestore query using an object element as parameter

Viewed 8091

i'm using Firestore as my database in a project and i have a table that i need to do a query inside an object

{
   foo: "data",
   bar: "data",
   exObject: {
      dataToQuery: "value"
   }
}

here is an example of a structure where i want to do a query inside the object a query that would look like this:

dbRef.collection("Table").where("exObject.dataToQuery", "==", "value")

but this is not working.

Is there a way to query in Firestore using an object's inner value as parameter? If not, is there a way to achieve something that would give the same result?

Example of a Firestore Structure

enter image description here

4 Answers
dbRef.collection("Table").where("exObject.dataToQuery", "==", "value")

this syntax i first posted is indeed the good syntax and started working eventually. I'd class the reason of my problem as a typo that i must have corrected trying a lot of different things

Here is the answer :

.where(new firestore.FieldPath('exObject' , 'dataToQuery'), '==', "value"))

More info Here

Try ( change from 'Table' to 'TEST' )

xptoCollection : AngularFirestoreCollection<any>;

  constructor(private afs: AngularFirestore) { }

      this.xptoCollection = this.afs.collection('TEST', ref => {
        return ref.where('exObject.{dataToQuery}', '==', 'value');
      });

for some reason to work , u need to leave space between object_name and .property_name

'exObject .dataToQuery'

instead of

 'exObject.dataToQuery'

leave space and it worked for me

Related