0
爲避免在各種應用程序(iOS,Android,Web)中重寫Firebase DB邏輯,我們之前使用服務/中間層來保存此邏輯。通過這種方式,應用程序不會直接與數據庫交互。 但是,在採用Firebase和Google雲端函數的新架構中,通過雲端函數路由所有數據庫調用是明智的,還是僅應根據用例選擇性地執行?使用Google Cloud Functions可以避免Firebase DB邏輯重複?
在我到目前爲止所看到的幾乎所有示例中,應用程序都直接與Firebase數據庫進行交互,而Cloud Functions僅用於傾聽某些事件並有選擇地使用。它們並不意味着是中間層。 然而,這種方法會導致需要在所有應用程序中複製數據庫邏輯。這種代碼重複可以避免嗎?
謝謝弗蘭克!如果您使用Firebase功能,則會失去實時數據庫功能並回退到使用常規Web API調用。正如您所指出的那樣,僅針對不需要離線功能的功能和業務邏輯太複雜的情況,我將使用函數。其他任何內容都可以直接轉到Firebase Db以利用其實時功能。 –
「如果您使用Firebase功能,則會失去實時數據庫功能並回退到使用常規Web API調用。」不必要。如果您有一個數據庫觸發的雲功能,並將其結果寫回數據庫,則客戶端應用程序仍可以作爲數據庫客戶端並獲得實時更新。請參閱以下示例:https://firebase.google.com/docs/functions/use-cases#perform_database_sanitization_and_maintenance –
是的,回寫到數據庫的數據庫觸發的雲功能有助於利用實時功能。正如在可能功能文檔中提到的那樣,這在需要維護/額外處理數據的情況下很有用。但是,對於大多數數據庫操作(CRUD),我認爲不應該通過寫入隊列來使用函數,以避免重寫代碼。最好直接與客戶端Firebase SDK合作以利用離線處理功能,即使這意味着要分別爲所有不同的客戶端重新編寫代碼。 –