Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

同步、異步和承諾

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

管理函數的生命週期以確保其正確解析非常重要。通過正確終止函數,您可以避免函數運行時間過長或無限循環產生過多費用。此外,您可以確保運行您的函數的 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代碼示例都包含正確終止函數的示例。以下是一些演示典型案例: