You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore v1beta1升级至v1遇阻,ARRAY_CONTAINS_ANY过滤器使用求助

解决Firestore v1beta1不支持ARRAY_CONTAINS_ANY的问题

一、升级Zapier中的Firestore API版本到v1

  • 打开你的Zap配置,找到Firestore相关的触发器/动作步骤
  • 查看该步骤的设置选项,寻找类似「API版本」的下拉菜单,选择v1(如果有该选项)
  • 如果默认集成没有版本选择,改用Zapier的Custom Request动作:
    1. 选择「Custom Request」作为动作类型
    2. 设置请求URL为Firestore v1端点,格式如:https://firestore.googleapis.com/v1/projects/[你的项目ID]/databases/(default)/documents/[你的集合名]:runQuery
    3. 请求方法设为POST
    4. 在请求体中使用v1版本的查询语法(见下文修正示例)
    5. 配置身份验证:使用Firebase服务账户密钥,在请求头中添加Authorization: Bearer [你的访问令牌],或通过Zapier的OAuth连接Firebase(确保连接权限适配v1版本)

二、修正查询代码以支持多值匹配

原查询存在两个问题:一是依赖v1beta1不支持的ARRAY_CONTAINS_ANY,二是ARRAY_CONTAINS_ANY的参数格式错误(需传入数组而非单个字符串)。以下是适配v1版本的修正后查询:

{
  "orderBy": [{"field": {"fieldPath":"timestamp"},"direction": "DESCENDING"}],
  "where": {
    "compositeFilter": {
      "op": "AND",
      "filters": [
        {
          "fieldFilter": {
            "field": {"fieldPath": "selectedItems"},
            "op": "ARRAY_CONTAINS",
            "value": {"stringValue": "Wind"}
          }
        },
        {
          "fieldFilter": {
            "field": {"fieldPath": "tags"},
            "op": "ARRAY_CONTAINS_ANY",
            "value": {
              "arrayValue": {
                "values": [
                  {"stringValue": "poland"},
                  {"stringValue": "germany"} // 可添加更多需要匹配的标签
                ]
              }
            }
          }
        }
      ]
    }
  }
}
  • 注意:ARRAY_CONTAINS_ANY的value必须是arrayValue类型,包含多个stringValue元素,才能实现「tags数组包含任意一个指定值即匹配」的需求

三、无法升级到v1时的替代方案

如果Zapier的Firestore集成确实无法切换到v1,可通过多个ARRAY_CONTAINS条件组合实现类似效果:

{
  "orderBy": [{"field": {"fieldPath":"timestamp"},"direction": "DESCENDING"}],
  "where": {
    "compositeFilter": {
      "op": "AND",
      "filters": [
        {
          "fieldFilter": {
            "field": {"fieldPath": "selectedItems"},
            "op": "ARRAY_CONTAINS",
            "value": {"stringValue": "Wind"}
          }
        },
        {
          "compositeFilter": {
            "op": "OR",
            "filters": [
              {"fieldFilter": {"field": {"fieldPath": "tags"},"op": "ARRAY_CONTAINS","value": {"stringValue": "poland"}}},
              {"fieldFilter": {"field": {"fieldPath": "tags"},"op": "ARRAY_CONTAINS","value": {"stringValue": "germany"}}}
            ]
          }
        }
      ]
    }
  }
}
  • 该方式的缺点是标签数量较多时查询会冗长,但能在v1beta1版本下实现「任意匹配」的需求

内容的提问来源于stack exchange,提问作者Ola Michalska

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:40:17