Мое приложение использует Firebase для синхронизации и восстановления данных. Я использую метод setValue:withCompletionBlock:
для вставки, обновления и удаления объектов Firebase. Этот метод вызывается всякий раз, когда имеется сохранение CoreData, таким образом синхронизируя все мои локальные изменения с Firebase
- (void) setValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block;
Теперь синхронизация загружает все локальные данные в firebase, а восстановление заменяет локальные данные данными firebase.
- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block;
Я наблюдаю FEventTypeValue
и использую FDataSnapshot
для получения данных из Firebase и восстановления локальных данных.
Итак, все работает отлично для меня, пока я не установил persistence
в Firebase.
[Firebase setOption:@"persistence" to:@YES];
Теперь, когда persistence
включен, когда я обновляю, скажем, вставьте объект в Firebase, а затем восстановите данные перед вставкой. т.е. вновь вставленный объект не восстанавливается. Однако, если я снова вернусь, вставленный объект будет восстановлен. То же самое происходит, когда объект удаляется. Удаленный объект снова появляется при первом восстановлении и исчезает при повторном восстановлении. Я вижу, что объекты Firebase вставляются и/или удаляются правильно через представление данных Firebase.
Я не уверен, что я делаю неправильно здесь. У меня проблема только при восстановлении. Я думаю, что кеш Firebase вызывает эту проблему восстановления. Я собираюсь очистить кеш Firebase до того, как я восстановлен. Мой вопрос:
- Очищает кеш до восстановления хорошего метода?
- Если да, как очистить кеш Firebase?
- Если нет, можете ли вы предложить мне лучший способ восстановления данных.