Firebase 3更新本地缓存

时间:2016-09-07 15:41:21

标签: ios swift firebase firebase-realtime-database

我正在开发一个从Firebase数据库接收数据的iOS应用。我需要保留本地版本的数据库,我发现Firebase的离线功能非常棒。现在,

  1. 有没有办法禁用自动同步,只有在用户点击某个按钮时才会更新?
  2. 有没有办法只更新新的或修改过的元素而不是重新下载所有内容?
  3. 2 - 之二。有没有办法知道已添加/修改的每个元素?

    1. FIRDataSnapshot是否符合NSCoding协议?我想将它保存在plist文件中......
    2. 编辑:

      在Firebase 3文档中阅读了更多内容后,我现在希望在单个请求中获取所有数据库树,是否可能?

      我的代码如下

          FIRDatabaseReference.goOnline()    
          var firebase = FIRDatabase.database().referenceWithPath("items")
                  firebase.observeEventType(.Value, withBlock: { snapshot in
      
                      print(snapshot.value)
      
                      if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] {
      
                          for snap in snapshots {
      
                              if let postDictionary = snap.value as? Dictionary<String, AnyObject> {
      
                                 print ("item received")
                              }
                          }
                      }
                  }) 
      FIRDatabaseReference.goOffline()
      

1 个答案:

答案 0 :(得分:1)

  1. 是。您可以使用observeSingleEventOfType以编程方式控制何时加载数据。

  2. 使用observeSingleEventOfType时没有,因为您可以有效地停用Firebase的缓存。

  3. FIRDataSnapshot不符合NSCoding协议