小编Use*_*156的帖子

Firebase:何时在swift中调用removeObserverWithHandle

文档说observeEventType:withBlock如果您不再需要它,您需要调用以删除观察者.

我见过它被称为内容的样本ViewDidDisAppear.我也发现了一些称为此方法的Obj-C代码deinit,这在Swift中是不必要的.

但是,在我的简单应用程序中,只要我在应用程序中,就希望数据同步.如果是这种情况,我是否必须打电话observeEventType:withBlock

我检查了Firebase网站上的Chat-Swift示例代码,但没有找到observeEventType:withBlock.

这是否意味着不打电话observeEventType:withBlock:.如果我希望观察者在应用程序使用时打开?

谢谢.

UPDATE

感谢Jay和David.我认为在ViewWillAppear中观察并在ViewDidDisappear中删除它是有意义的.

但是,我使用observeEventType来监视节点的任何值更改,如果有任何更新UI.如果我把它放在ViewWillAppear中:

 override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    ref.observeEventType(.Value, withBlock: { snap in {
      // **update UI if there is any Value change** 
    })
  }
Run Code Online (Sandbox Code Playgroud)

将其放入的问题viewWillAppear是,无论值是否发生变化,每次出现视图时都会调用它.因此,每次返回视图时都会下载快照并刷新我的UI.这会适得其反.

我也试过ChildAdded/ ChildRemoved,但它只返回最后一个节点,而不是我的ref的路径:

例如,如果我添加到ref/child1/child2/child3/value,ChildAdded则只返回child3/value.

所以,如果我必须观察价值,似乎把它放进去ViewDidLoad更好?通过这种方式,它可以在加载视图时获取一次快照,并且只要有更改就会重复,但只是因为视图出现而无法获取快照.

observers uikit ios firebase swift

15
推荐指数
2
解决办法
9631
查看次数

iOS 9 ATS和Firebase REST

我正在构建一个简单的iOS应用程序,使用REST API与Firebase对话.

基本上,我NSURLSession.sharedSession().dataTaskWithRequest用来连接

https://myusername.firebaseio.com/Object.json

该应用程序在iOS 8中运行良好.我能够通过GET/PUT/PATCH/DELETE来操作我的数据.但是由于iOS 9引入了ATS,我现在有了https错误:

NSURLSession/NSURLConnection HTTP加载失败

(kCFStreamErrorDomainSSL,CFNetwork SSLHandshake失败)

我完全了解Info.plist中的变通方法解决方案. 但是,我想在iOS 9中使用新的安全功能.

我检查了Firebase连接安全性(通过点击Chrome的绿色锁定按钮),它似乎与Apple的ATS要求兼容.

我的错误是因为我使用NSURLSession的方式?或者是因为Firebase安全设置?

PS:我测试了https://firebase.com并且NSURLSession连接了精细的w/o错误.我的应用程序也很简单,我不需要身份验证.

谢谢您的帮助.

https firebase ios9

7
推荐指数
1
解决办法
2961
查看次数

标签 统计

firebase ×2

https ×1

ios ×1

ios9 ×1

observers ×1

swift ×1

uikit ×1