我的应用使用 Firebase 同步和恢复数据。我使用该setValue:withCompletionBlock:
方法插入、更新和删除 Firebase 对象。每当有 CoreData 保存时都会调用此方法,从而将我的所有本地更改同步到 Firebase
- (void) setValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block;
现在同步会将所有本地数据上传到 firebase,而 restore 会将本地数据替换为 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 缓存?
- 如果没有,你能建议我恢复数据的最佳方法吗?