【发布时间】:2014-08-16 11:32:47
【问题描述】:
我的应用使用 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 缓存?
- 如果没有,您能否建议我恢复数据的最佳方法。
【问题讨论】:
标签: ios objective-c firebase firebase-realtime-database persistence