获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

同步、异步和承诺

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

管理函数的生命周期以确保其正确解析非常重要。通过正确终止函数,您可以避免函数运行时间过长或无限循环产生过多费用。此外,您可以确保运行您的函数的 Cloud Functions 实例在您的函数成功达到其终止条件或状态之前不会关闭。

使用这些推荐的方法来管理函数的生命周期:

  • 通过返回JavaScript promise来解析执行异步处理的函数(也称为“后台函数”)。
  • 使用res.redirect()res.send()res.end()终止HTTP 函数
  • 以返回终止同步函数return;陈述。

使用 JavaScript Promise 简化异步代码

Promise 是异步代码回调的现代替代方案。 Promise 代表一个操作和它可能返回的未来值。它还允许您在同步代码中传播类似于 try/catch 的错误。您可以在Firebase 博客上阅读 Firebase SDK 中的承诺,以及在MDN上阅读一般承诺。

Promise 如何与函数一起工作

当您将 JavaScript 承诺返回给函数时,该函数将继续运行,直到承诺被解决或拒绝。为了表明一个函数已经成功完成了它的工作,promise 应该被解析。为了指示错误,应拒绝该承诺。这意味着您只需要处理您想要的错误。

以下代码采用 Firebase 实时数据库ref并将其值设置为"world!" .通过返回set的结果,可以保证您的函数继续运行,直到将字符串写入数据库的异步工作完全完成:

// Always change the value of "/hello" to "world!"
exports.hello = functions.database.ref('/hello').onWrite(event => {
  // set() returns a promise. We keep the function alive by returning it.
  return event.data.ref.set('world!').then(() => {
    console.log('Write succeeded!');
  });
});

上下文中的示例

我们的大多数 Cloud Functions代码示例都包含正确终止函数的示例。以下是一些演示典型案例: