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

Algolia Firebase扩展未调用Transform云函数问题求助

Algolia Firebase扩展未调用Transform云函数问题求助

我现在遇到一个棘手的问题:我想把Firestore文档里view对象下的reports键及其对应的值移除掉,为此专门写了一个Cloud Function做数据转换。这个函数用Postman测试完全正常,能正确返回移除了reports的文档,但Algolia的Firebase扩展在索引文档时就是不调用这个转换函数,导致索引里还是保留了reports字段。

原始Firestore文档结构

{
  "created":1699434507661,
  "id":"kHf3oKAOUf",
  "uid":"x3VdbQseTcZeNiDezH8Kyj3CKFH3",
  "view":{
    "material":"DCP",
    "reports":[
      {
        "jrs2GEHYI6pTFtXIrIbc":{
          "results":[
            {
              "title":"Calcium",
              "avg_overall":23.5,
              "id":"SC2s2IZ8PzhQcNzGb9PH",
              "avg_self":23.5,
              "unit":"%",
              "value":29.11
            },
            {
              "avg_overall":14.25,
              "id":"eqpg13ICjsuS53KoyE5I",
              "avg_self":14.25,
              "unit":"%",
              "value":14.39,
              "title":"Phosphorus"
            }
          ],
          "title":"Calcium & Phosphorus Analysis - (As is)",
          "retest":false,
          "publish":true,
          "file":"AAS-002-2611"
        }
      }
    ],
    "tests":[
      "Calcium & Phosphorus Analysis"
    ]
  },
  "updated":1701954794343
}

我写的Cloud Firestore转换函数

exports.transform = onRequest((req: any, res: any) => {
  const originalDocument = req.body.data;
  const transformedDocument = {
    // 复制所有字段,移除view下的reports
    ...originalDocument,
    view: {
      ...(originalDocument.view || {}),
      reports: undefined, // 移除reports键
    },
  };
  res.status(200).send(transformedDocument);
});

我还准备了Algolia Firebase扩展配置页的截图,不过暂时无法在这里展示具体内容。

我已经确认函数本身没问题,但就是和扩展对接不上,有没有朋友遇到过类似的情况?或者能帮我排查下可能的原因?比如:

  • 是不是扩展配置里的转换函数URL填错了?
  • 扩展的触发条件有没有和我的文档集合匹配?
  • 函数的权限设置是不是有问题,导致扩展无法调用?
  • 函数返回的格式是不是不符合扩展的要求?

备注:内容来源于stack exchange,提问作者Aly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 10:23:01