关闭客户端应用程序或切换用户帐户对可调用云函数执行的影响

问题描述 投票:0回答:1

我使用 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;
}
firebase google-cloud-functions
1个回答
0
投票

如果您期望可调用函数在被客户端调用后无限期地执行,那么这种情况永远不会发生,原因有两个:

  1. 功能有一个超时,超时后将始终关闭。让函数永远运行是不可能的。
  2. 不等待任何后台工作终止就立即返回的函数将不会按照您期望的方式完成。一旦函数返回,它们就会被关闭。

如果发生其中任何一种情况,您应该在函数日志中看到某种错误。

客户做什么并不重要。这些行为对于所有功能都是相同的,旨在帮助您避免因过度使用后端资源而产生意外费用。

如果您需要无限制的超时后台处理,那么 Cloud Functions 不适合您的使用案例。

© www.soinside.com 2019 - 2024. All rights reserved.