Firebase 我可以为可靠的应用程序使用Google CloudFunctions吗?

Firebase 我可以为可靠的应用程序使用Google CloudFunctions吗?,firebase,google-cloud-platform,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Platform,Google Cloud Firestore,Google Cloud Functions,我记得读过一篇文章,其中解释说云函数不能保证执行,尤其是在正确的顺序上。我再也找不到这方面的消息来源了。 这还是最近的消息吗 我知道启动功能可能需要几秒钟,尤其是冷启动功能时 每次在特定Firestore集合中创建文档时,我是否可以可靠地增加一个数字,而不会混淆我的数字?我知道这是经常做的,但我从来没有看到过这样做是否安全的信息 关于第一个问题,在使用云功能进行支付后端服务时是否存在危险信号 我能否确定云函数是按触发顺序执行的,即它们是排队还是并行执行 每次在特定Firestore集合中创建文档

我记得读过一篇文章,其中解释说云函数不能保证执行,尤其是在正确的顺序上。我再也找不到这方面的消息来源了。 这还是最近的消息吗

我知道启动功能可能需要几秒钟,尤其是冷启动功能时

  • 每次在特定Firestore集合中创建文档时,我是否可以可靠地增加一个数字,而不会混淆我的数字?我知道这是经常做的,但我从来没有看到过这样做是否安全的信息
  • 关于第一个问题,在使用云功能进行支付后端服务时是否存在危险信号

  • 我能否确定云函数是按触发顺序执行的,即它们是排队还是并行执行
  • 每次在特定Firestore集合中创建文档时,我是否可以可靠地增加一个数字,而不会混淆我的数字

    您当然可以编写代码来实现这一点。您需要跟踪另一个文档中文档的运行计数,并使用事务使其保持最新

    我不建议这样做。在Firestore中,对集合中的文档施加顺序递增的数字是一种反模式。如果需要基于时间的排序,则应该考虑使用时间戳来代替。 我能否确定云函数是按触发顺序执行的,即它们是排队还是并行执行

    云函数绝对不能保证函数调用将以任何顺序进行。它们是异步的,可以在多个服务器实例上并行执行,具体取决于应用于函数的负载

    我强烈建议您通读一下,以了解云功能提供的执行环境。

    稍微扩展一下(因为我正在积极使用云功能)-云功能的强大之处在于其多个服务器实例,可能在全球范围内。这种能力的局限性在于,根据定义,没有一个阻塞点/队列,因此您必须确保您的函数是“幂等的”——一个花哨的词,意味着每次运行都是完全独立的,在某些情况下可能会运行两次,并且必须具有完全相同的效果(即,在云功能中创建新的Firestore记录而不进行更仔细的检查可能存在风险)