我的應用使用Firebase同步和恢復數據。我使用setValue:withCompletionBlock:
方法來插入,更新和刪除Firebase對象。這種方法被稱爲每當有CoreData保存,從而同步我的所有本地更改火力Firebase持久性,清除Firebase緩存
- (void) setValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block;
現在同步上傳的所有本地數據火力點,同時恢復與火力數據替換本地數據。
- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block;
我觀察FEventTypeValue
並使用FDataSnapshot
來從火力地堡數據,並恢復本地數據。
因此,一切都適用於我,直到我將persistence
設置爲Firebase。
[Firebase setOption:@"persistence" to:@YES];
現在,當persistence
是,當我更新,說對象插入到火力地堡,然後恢復,數據恢復插入前。即新插入的對象未被恢復。但是,如果我再次恢復,插入的對象被恢復。當一個對象被刪除時會發生同樣的事情。當我第一次恢復時,刪除的對象會再次出現,當我再次恢復時會消失。我可以看到Firebase對象是通過Firebase數據視圖正確插入和/或刪除的。
我不知道我在做什麼錯在這裏。我恢復時只有問題。我認爲Firebase緩存導致了這個還原問題。我正在考慮在恢復之前清除Firebase緩存。我的問題是
- 在還原之前清除緩存是一個很好的方法嗎?
- 如果是,如何清除Firebase緩存?
- 如果不是,你能否建議我恢復數據的最佳方法。
這仍然是這種情況?這似乎是我遇到這個問題。檢查用戶名是否存在,如果不存在,則創建用戶。如果用戶註銷並嘗試使用相同的用戶名創建新用戶,則它將工作,因爲緩存不會更新。 –
我一直是Firebase的忠實粉絲。但爲此,我必須坦白地說這是一個很大的限制。 Firebase應在方法fetchNewData:Bool中添加一個新參數。意料之中的預期行爲不是預期的行爲。在很多情況下,這可能會失敗,例如分頁。我們大多數人不會在分頁時觀察頁面的值,否則上一頁可能會刷新,而分頁概念本身(這是爲了減少數據傳輸)變得無用,因爲觀察方法不斷刷新前一頁數據,並且我們也無法使用'removeObserver' –
對此有任何修正? – Relm