OmomSun
OmomSun

Reputation: 337

Query nested object in Firestore REST API

I'm stuck with querying Firestore REST API. I can figure out how to filter by a regular key but I can't figure out how to query by nested object key.

Basically, in the browser client, I can do

firestore.collection("channels")
   .where("members.[memberID]", "==", true)
   .get()

However, when I try to do the same in the REST API, it said Invalid Argument. I was trying to do

{
 "structuredQuery": {
  "where": {
   "fieldFilter": {
    "field": {
     "fieldPath": "members.[memberID]"
    },
    "op": "EQUAL",
    "value": {
       booleanValue: "true"
    }
   }
  },
  "from": [
   {
    "collectionId": "channels"
   }
  ]
 }
}

but it gives me "Invalid Argument" error on fieldPath. Does anybody know how to query Firestore REST API based on nested object?

Thank you!

Upvotes: 11

Views: 7518

Answers (1)

OmomSun
OmomSun

Reputation: 337

I asked for Firebase support and they said special characters in fieldPath such as "-" in my case can be escaped using back tick or back slash. It is mentioned in the documentation. In my case, I'll need to do

members.`[memberID]`

I hope this is helpful for you guys.

Upvotes: 12

Related Questions