我使用 firebase 可调用云函数来删除用户数据。当用户在客户端应用程序中确认删除时,将触发可调用的云函数。可调用的云函数不会返回任何值,并且需要一些时间才能执行所有删除。另一方面,客户端应用程序中的完成块是空的。我想知道如果客户端应用被关闭或者被其他用户登录,是否会影响后台运行的云功能?
客户端应用程序中的代码如下所示
functions.httpsCallable("deleteUserData").call(callData) { _, _ in
// do nothing in the completion block
// the client app may close or login by other user account
}
可调用的云函数是这样的
exports.deleteUserData = functions.https.onCall(async (data, context) => {
// delete user data here
// after finished, no value to return
return null;
}
如果您期望可调用函数在被客户端调用后无限期地执行,那么这种情况永远不会发生,原因有两个:
如果发生其中任何一种情况,您应该在函数日志中看到某种错误。
客户做什么并不重要。这些行为对于所有功能都是相同的,旨在帮助您避免因过度使用后端资源而产生意外费用。
如果您需要无限制的超时后台处理,那么 Cloud Functions 不适合您的使用案例。