Swift Firebase持久性故障同步

问题描述

我在同步本地和远程数据时遇到麻烦。

  1. 启用Database.database().isPersistenceEnabled = true

  2. fistVC获取数据:

    func getScheduleList( completion: @escaping([String: Any]?) -> () ) {
    
        _REF.child(self.CURRENT_USER_TOKEN).child("list").keepSynced(true) // tried without
    
        _REF.child(self.CURRENT_USER_TOKEN).child("list").observe(.value) { (dataSnapshot) in
    
            guard let value = dataSnapshot.value as? [String: Any] else {
                completion( nil)
                return
            }
    
            completion( value)
    
        }
    
    }
    
  3. secondVC中,我从child("list")删除了一些值

  4. firstVC中的
  5. 自动调用侦听器,但是从缓存cuz加载的value仍然具有删除值(在步骤3中)

示例:

  1. getScheduleList { (value) in print (value) } // print: [key1:val1,key2:val2]
  2. 删除val2:_REF.child(self.CURRENT_USER_TOKEN).child("list").child("key2").removeValue()
  3. 返回第1步,打印结果将相同print: [key1:val1,key2:val2]

但是如果我将禁用本地缓存Database.database().isPersistenceEnabled = false,则第3步将返回正确的数据print: [key1:val1]

我如何仍然可以保存isPersistenceEnabled并获取实际数据?

p.s我删除一些数据时出现此错误(或者可能是我的错误),如果我要添加的话就可以正常工作

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)