2017-07-02 83 views
-1

我正在XCode(Swift 3.0)中製作一個簡單的測驗應用程序,但遇到了一些與Firebase相關的問題,我真的想得到一些幫助。首先,讓我解釋什麼,我試圖做的:哪些Firebase離線功能用於測驗應用程序(ios)

  1. 我想存儲在火力地堡題庫,這樣我可以添加,刪除和更新的問題,然後讓它們自動更新用戶的手機不需要通過AppStore進行更新。

  2. 應該存儲有關Firebase上存儲的每個用戶的一些「元數據」數據,例如暱稱和已完成問題的ID列表,以免相同問題被詢問兩次。我希望在Firebase上擁有這些數據的原因是,我希望允許用戶從不同設備登錄並從之前的位置獲取信息。

  3. 如果可能,我想盡量減少對Firebase的調用次數,以免應用程序過度使用用戶的漫遊。

我已經看過了火力地堡離線功能,和我的問題是:

  1. 我真的不明白.isPersistenceEnabled和.keepSynced之間的區別 - 如果任何人都可以解釋這一點,我將非常感激。

  2. 對於上述要求,你會建議我做(.keepSynced,.isPersistenceEnabled,或別的東西嗎?)

非常感謝提前!

回答

2

啓用持久性會設置以前從Firebase實時數據庫讀取的基於磁盤的本地基於數據的緩存。

keepSynced()上的引用相當於在引用上添加一個空的偵聽器。這具有確保對服務器上該位置的任何更改將自動下載到客戶端的效果。這在應用程序被殺後不會持續。如果您希望始終啓用此功能,則必須在每次啓動時編寫應用程序以調用它。

當您使用keepSynced()以及啓用持久性時,這意味着客戶端緩存始終應包含來自服務器的最新數據,只要客戶端具有連接性即可接收這些更新。這意味着其他偵聽器將立即從該位置接收並緩存數據。