小编Tha*_*hir的帖子

Firebase持久性,清除Firebase缓存

我的应用使用Firebase同步和恢复数据.我使用该setValue:withCompletionBlock:方法插入,更新和删除Firebase对象.只要存在CoreData保存,就会调用此方法,从而将所有本地更改同步到Firebase

- (void) setValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block;
Run Code Online (Sandbox Code Playgroud)

现在同步将所有本地数据上传到firebase,而restore则使用firebase数据替换本地数据.

- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block;
Run Code Online (Sandbox Code Playgroud)

我观察FEventTypeValue并使用它FDataSnapshot来从Firebase获取数据并恢复本地数据.

所以一切都适合我,直到我开始persistence使用Firebase.

[Firebase setOption:@"persistence" to:@YES];
Run Code Online (Sandbox Code Playgroud)

现在persistence,当我打开时,当我更新时,比如将对象插入Firebase,然后恢复,恢复插入前的数据.即没有恢复新插入的对象.但是,如果我再次恢复,则会恢复插入的对象.删除对象时会发生同样的事情.当我第一次恢复时,删除的对象重新出现,当我再次恢复时,删除的对象消失.我可以看到通过Firebase数据视图正确插入和/或删除了Firebase对象.

我不确定我在这里做错了什么.我恢复时只有问题.我认为Firebase缓存导致此恢复问题.我正在考虑在恢复之前清除Firebase缓存.我的问题是

  1. 在恢复之前清除缓存是一个好方法吗?
  2. 如果是,请问如何清除Firebase缓存?
  3. 如果不是,您能否建议我恢复数据的最佳方法.

persistence objective-c ios firebase firebase-realtime-database

30
推荐指数
1
解决办法
8336
查看次数