在我的应用程序中,每当用户删除自己在帖子中发表的评论时,就会触发一个云函数来更新用户集合中用户记录中的某些属性。如:对评论进行删除,更新用户记录
但是,当删除用户的帐户及其评论时,该云功能被触发,因为评论正在被删除。
因为帐户正在被删除,所以我不需要在用户的集合中进行更新。
是否有一种方法可以避免触发谷歌云功能,如果满足条件,如"如果删除帐户,返回null"?
我可以传递一个参数给函数,以便我可以使用它作为条件吗?
任何帮助都将非常感激。
您无法避免触发它们,但您可以检测comment
是否被用户删除或其他云功能正在"清理";通过检查auth
类型来删除来自用户的用户数据,如下所示:
.onUpdate((eventSnapshot, context) => {
if (context.authType === 'ADMIN') {
// This cloud function is triggered by another cloud function so we exit here
return null
}
如果您在使用云函数删除用户时删除了所有用户数据,您可以使用此方法仅退出将被触发的其他云函数。
IIUC,您正在使用Cloud Firestore触发器,我假设(!?)您正在使用OnWrite
事件。
OnWrite
包括创建、更新和删除。
一个解决方案是创建OnCreate
和OnUpdate
触发器。
如果你不允许用户更新评论,那么你只需要OnCreate
。