在 Firestore REST API 中查询嵌套对象

Posted

技术标签:

【中文标题】在 Firestore REST API 中查询嵌套对象【英文标题】:Query nested object in Firestore REST API 【发布时间】:2018-05-18 10:55:03 【问题描述】:

我一直在查询 Firestore REST API。我可以弄清楚如何通过常规键进行过滤,但我无法弄清楚如何通过嵌套对象键进行查询。

基本上,在浏览器客户端,我可以做到

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

但是,当我尝试在 REST API 中执行相同操作时,它显示无效参数。我正在尝试做


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

但它在fieldPath 上给了我“无效参数”错误。有谁知道如何根据嵌套对象查询 Firestore REST API?

谢谢!

【问题讨论】:

我也有同样的问题...找不到好的答案。 我可能需要做的是使用 JSONModel 将其转换为字符串,然后再将其转换回来。这似乎有点难看。 抱歉这个愚蠢的问题,但是你在哪里通过结构化查询传递这个对象?我将它作为请求正文传递,它根本不起作用。有人可以分享一个完整的例子吗?会有帮助的。 @GeorgiArnaudov 您需要在请求正文中传递整个structuredQuery 对象,我上面的是请求正文 【参考方案1】:

我请求 Firebase 支持,他们说 fieldPath 中的特殊字符,例如“-”在我的情况下可以使用反引号或反斜杠进行转义。提到了in the documentation。就我而言,我需要这样做

members.`[memberID]`

希望对大家有帮助。

【讨论】:

这个对我帮助很大!非常感谢!

以上是关于在 Firestore REST API 中查询嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章