作者:我是雅婷姑娘 | 来源:互联网 | 2023-05-22 08:17
在firebase sdk的ios Swift实现中,firebase对象应该存储在单例中吗?或者它是否在视图之间自动管理和关闭连接?
例如,是否会在每个视图中创建一个firebase对象来创建多个套接字连接?保留一个firebase对象会更有效吗?
let ref = Firebase(url: "https://" + kFireBaseHost + ".firebaseio.com/")
小智..
9
你不需要制作一个单身人士.在幕后,Firebase管理单个连接,如果您有多个Firebase对象,或者即使您在一个位置有多个观察者,也会进行相应的重复数据删除.如果您为每个视图创建一个新的Firebase对象,只要它使用相同的基本URL,它仍将使用与服务器相同的连接.
虽然您不需要管理自己拥有的Firebase对象数量,但您应该管理您的观察者.这些不会在视图之间删除.要删除观察者,可以使用方法FirebaseHandle
返回observeEventType
的removeObserverWithHandle:
方法或调用removeAllObservers
.请注意,这两种方法都要求您在与附加观察者的位置相同的URL位置调用它们(尽管它不必是相同的对象,只是相同的URL).如果您不删除观察者,您可能会看到它们从您离开的视图中触发,因为其他人正在更改数据.您可以在Detaching Blocks下的文档中阅读更多内容.
Swift或Objective-C都是如此.
1> 小智..:
你不需要制作一个单身人士.在幕后,Firebase管理单个连接,如果您有多个Firebase对象,或者即使您在一个位置有多个观察者,也会进行相应的重复数据删除.如果您为每个视图创建一个新的Firebase对象,只要它使用相同的基本URL,它仍将使用与服务器相同的连接.
虽然您不需要管理自己拥有的Firebase对象数量,但您应该管理您的观察者.这些不会在视图之间删除.要删除观察者,可以使用方法FirebaseHandle
返回observeEventType
的removeObserverWithHandle:
方法或调用removeAllObservers
.请注意,这两种方法都要求您在与附加观察者的位置相同的URL位置调用它们(尽管它不必是相同的对象,只是相同的URL).如果您不删除观察者,您可能会看到它们从您离开的视图中触发,因为其他人正在更改数据.您可以在Detaching Blocks下的文档中阅读更多内容.
Swift或Objective-C都是如此.