我一直在尝试获取firebase中的多子集合级别结构的参数和数据。我需要了解每个级别的所有文档ID。我正在使用onCreate触发器。
我的结构如下:
公用事业/天然气/付款类型/卡/日期/2020-01
并且一直试图获得以下参数:
- 公用设施类型,例如天然气
- 付款类型,例如卡
- 日期,例如2020-01
我一直试图使用的代码如下:
export const addDistributionArea = functions.firestore.document("utilsTypesDistributionArea/{utilityType}/paymentTypes/{paymentType}/dates/{date}")
.onCreate(async (snapshot: any, context: any) => {
console.log("params", context.params);
console.log("id", snapshot.ref.id);
console.log("data", snapshot.data());
return null;
});
目前我可以检索utilityType和paymentType,但{date}始终未定义。
结果:
> params { utilityType: 'gas', paymentType: 'card', date: undefined }
> id QDD_1
> data {}
有人能帮我找到解决方案吗。
没有一个云函数可以像这样在多个写入之间触发。
我能想到的选项:
-
将所有数据写入单个文档,然后根据云函数代码中的需要将数据扇出到其他集合。
-
触发每个文档,然后检测您的云功能代码中是否存在所有必要的文档。如果没有,请忽略此触发器并等待其他文档出现。
这两种都可以工作,尽管我个人更喜欢第一种,因为我喜欢将组合文档视为";交易数据";在这种情况下,应用程序会自动发布。