繁体   English   中英

从 Firebase function 返回更新方法是否满足 promise 要求并自动记录事件?

[英]Will returning an update method from a Firebase function satisfy the promise requirement and automatically log events?

我有一个 Firebase 云 function,当用户注销客户端时,它会写入 Firestore。 我不需要向客户端返回任何内容,并且我不想处理任何错误(截至目前),除了记录到控制台(我认为这是自动完成的)。 因此,我是否可以放弃then()catch()并只返回更新数据库的调用(如下所示)?

export const userDidSignOut = functions.https.onCall((data, context) => {
    const userId = data.userId
    const userSettingsUpdate = {
        "private.fcmToken": null
    }

    return admin.firestore().collection("userSettings").doc(userId).update(userSettingsUpdate)
})
  1. 这是否满足 Firebase 正确处理所有承诺的要求?
  2. 此日志会自动将成功和失败记录到 Functions 日志中吗?
  3. 文档说我可以请求异步(非 HTTPS)后台函数在失败时重试,但我对该声明感到困惑。 据我所知,上面的 function(从 iOS 应用程序中调用)是背景 function(非 HTTP 请求函数),但它仍然是https function。这个 8834004065898 是否符合自动重试条件?

Firestore update方法返回一个 promise,它在服务器上完成写入时解析。 因此,如果您从 Cloud Function 返回它,则 Cloud Function 将在写入完成时终止。 由于这是代码中唯一的退出路径,因此您确实从每个路径返回了一个值或 promise。

此 promise 的成功和失败将记录在 Cloud Functions 日志中。

onCall函数是 HTTPS 函数的包装器,不是后台函数。 Cloud Functions 引擎无法自动重试它们。 如果您出于任何原因想要重试可调用的 function,则必须在客户端应用程序代码中进行处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM