如何修复firebase本地缓存损坏

时间:2015-06-17 17:30:31

标签: ios firebase

我试图从firebase中读取旧值,更新它,然后使用以下代码将其保存回来:

var unreadChatsRef = usersRef.childByAppendingPath("\(user.objectId!)/unreadChats/\(self.chat.objectId!)")
unreadChatsRef.observeSingleEventOfType(FEventType.Value, withBlock: { (snapshot) -> Void in
    if snapshot.exists() {
        var msgCnt = snapshot.value as? Int
        msgCnt = (msgCnt ?? 0) + 1
        unreadChatsRef.setValue(msgCnt)
    }
})

之前我犯了一个错误,并使用observeEventType而不是单个事件,因此通过保存该值,它会触发自己一次又一次地更新值。我在调试会话中看到这个时停止了我的iOS程序。不知怎的,后来的更新都没有进入firebase服务器。我通过调用Firebase.defaultConfig().persistenceEnabled = true启用了本地缓存。所以我最终得到的缓存值与服务器上的值不同。

令我感到困惑的是,即使我的其他iOS聊天客户端更新了该号码,此iOS设备(上面的代码)仍然会看到缓存的值,并且永远无法从服务器获取正确的值。难道我做错了什么?如何告诉我的程序使缓存无效并从服务器获取新副本?

0 个答案:

没有答案