在firebase sdk的ios Swift实现中,firebase对象应该存储在单例中吗?或者它是否自动管理和关闭视图之间的连接?
例如,在每个视图中创建一个 firebase 对象会创建多个套接字连接吗?只保留一个 firebase 对象会更有效吗?
let ref = Firebase(url: "https://" + kFireBaseHost + ".firebaseio.com/")
你不需要创建一个单例。 Firebase 在后台管理单个连接,如果您有多个 Firebase 对象,或者即使您在单个位置有多个观察者,Firebase 也会适当地进行重复数据删除。如果您为每个视图创建一个新的 Firebase 对象,只要它使用相同的基本 url,它仍然会使用相同的服务器连接。
虽然您不需要管理您拥有的 Firebase 对象数量,但您应该管理您的观察者。这些不会在视图之间删除。要删除观察者,您可以使用FirebaseHandle
由返回observeEventType
方法与removeObserverWithHandle:
方法或调用removeAllObservers
。请注意,这两种方法都要求您在与附加观察者的位置相同的 url 位置调用它们(尽管它不必是相同的对象,只需相同的 url)。如果您不删除观察者,您可能会看到它们从您离开的视图中触发,因为其他人正在更改数据。您可以阅读更多内容在分离块下的文档中 https://www.firebase.com/docs/ios/guide/retrieving-data.html.
对于 Swift 或 Objective-C 来说都是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)