firebase 对象应该是 swift 中的单例吗?

should the firebase object be a singleton in swift?

在firebase sdk的ios Swift实现中,firebase对象是否应该存储在单例中?或者它是否自动管理和关闭视图之间的连接?

例如,在每个视图中创建一个 firebase 对象会创建多个套接字连接吗?只保留一个 firebase 对象会更有效率吗?

let ref = Firebase(url: "https://" + kFireBaseHost + ".firebaseio.com/")

你不需要做单例。在幕后,Firebase 管理单个连接,如果您有多个 Firebase 对象,或者即使您在一个位置有多个观察者,Firebase 也会适当地进行重复数据删除。如果您为每个视图创建一个新的 Firebase 对象,只要它使用相同的基础 url,它仍将使用相同的服务器连接。

虽然您不需要管理您拥有多少个 Firebase 对象,但您应该管理您的观察者。这些不会在视图之间被删除。要删除观察者,您可以将 observeEventType 方法返回的 FirebaseHandleremoveObserverWithHandle: 方法一起使用或调用 removeAllObservers。请注意,这两种方法都要求您在与附加观察者的位置相同的 url 位置调用它们(尽管它不需要是相同的对象,只需相同的 url)。如果您不删除观察者,您可能会看到它们从您离开的视图中触发,因为其他人正在更改数据。您可以阅读更多 in the docs under Detaching Blocks.

Swift 或 Objective-C 都是如此。