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

时间:2015-02-13 20:58:05

标签: swift firebase

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

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

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

1 个答案:

答案 0 :(得分:9)

你不需要制作单身人士。在幕后,Firebase管理单个连接,如果您有多个Firebase对象,或者即使您在一个位置有多个观察者,也会进行相应的重复数据删除。如果您为每个视图创建一个新的Firebase对象,只要它使用相同的基本网址,它仍将使用与服务器相同的连接。

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

Swift或Objective-C都是如此。