将云函数与 Firebase 实时数据库结合使用时,您可以使用云函数定位特定字段。例如,给定这个 JSON 结构,我可以定位 user1 的电子邮件字段随('/user/{userId}/email').onUpdate
云功能。
{
"user": {
"user1": {
"name": "John Doe",
"phone": "555-5555",
"email": "[email protected]"
}
}
}
现在,使用Firestore,我似乎无法定位特定字段,只能定位文档。如果是这种情况,针对电子邮件字段的 Firestore 云功能必须如下所示,('/user/{userId}').onUpdate
,并在每次出现任何文档时触发user
集合发生了变化。这将导致大量浪费的云函数被触发。这就是 Firestore 的工作方式吗?是否有一种优雅的解决方法?
您是对的,由于不同的数据模型,Cloud Firestore 只允许您在文档级别事件而不是字段级别触发 Cloud Functions。
一种方法是将电子邮件存储在单独的文档中(例如,在名为“电子邮件”的子集合中),因此更新电子邮件是唯一会触发的更改。但这确实需要您在每次需要电子邮件时阅读额外的文档。
另一种类似的方法是仍然将其保留在同一个文档中,但也将其写入子集合中作为第二次写入以触发该函数。使用电子邮件作为我想要的文档,并在文档中添加时间戳字段,以便轻松清理旧文档(选择要删除的最旧的电子邮件文档,甚至可以在功能中选择)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)