2017-04-15 67 views
3

當客戶端向數據庫添加某些內容時,我正在使用Firebase的雲功能執行觸發器,但似乎這些觸發器需要很長時間才能執行。Firebase數據庫觸發執行延遲

例如,我有一個觸發器,只要將帖子添加到數據庫中就會向創建日期添加創建日期,並且需要等待10秒才能完成。 另外,我有更大的觸發器需要更長的時間。

有沒有像我缺少的「最佳實踐」?我做錯了什麼?

+1

同意。我有一個非常小的啓動數據庫,我看到了相同類型的延遲。不是很「實時」,所以我懷疑我們做錯了什麼?我* __建議在你的帖子上面添加你的函數的代碼段__ *,以便更多人迴應。 – Sean

+0

我其實發現Firebase有一個「熱身期」。這意味着您第一次調用某個功能時,它將開始預熱,直到它完全變暖時纔會完全響應。 –

回答

2

我發現雲端函數有時需要時間來響應的原因是因爲它們有一個「熱身」期,這意味着您第一次調用雲端函數時它會開始升溫,直到溫暖時纔會有充分的反應。

暖機過後,它會像您期望的那樣響應。

此行爲的原因是資源資源平衡 - 如果您在一段時間內不使用函數,它將關閉並清除資源,以便其他函數更具響應性。

+0

謝謝艾琳。你碰巧知道這是否僅適用於免費層級或應用層級的固有品質? – Sean

+1

它發生在免費和付費層級,因爲這是Firebase雲端函數的機制。每個功能都運行在自己的虛擬服務器(或多個服務器)上,這些虛擬服務器需要時間來響應。這是由於Firebase具有高度可擴展性。我知道Google雲端函數中有解決方法(搜索「熱身請求」),但我不確定在Firebase中是否有可能。另外,請注意,如果您的應用程序處於活動狀態,則服務器始終保持溫暖,並且這些功能始終保持響應狀態。 –