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
相关产品推荐
相关产品推荐

