Firebase iOS插槽未重新连接
我遇到了一个问题,我将随机停止接收我所有应用程序上的事件。我最终发现,这种情况发生在两种情况下。网络中断或应用程序被发送到后台。我尝试过使用Firebase iOS插槽未重新连接,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我遇到了一个问题,我将随机停止接收我所有应用程序上的事件。我最终发现,这种情况发生在两种情况下。网络中断或应用程序被发送到后台。我尝试过使用Database.Database.goOnline()但没有效果。有没有其他方法可以恢复我已经注册的观察员 当我的程序启动时,它会调用一些实例,这些实例具有观察属于它们的数据的功能。然后,来自观察者的数据存储在实例中,如果视图当前存在,则更新视图。这样,数据将在后台更新,我可以在视图控制器之间移动,而无需加载时间。看起来这些观察家们好像是在超时或诸如此类的
Database.Database.goOnline()
但没有效果。有没有其他方法可以恢复我已经注册的观察员
当我的程序启动时,它会调用一些实例,这些实例具有观察属于它们的数据的功能。然后,来自观察者的数据存储在实例中,如果视图当前存在,则更新视图。这样,数据将在后台更新,我可以在视图控制器之间移动,而无需加载时间。看起来这些观察家们好像是在超时或诸如此类的事情
class Order {
static let instance: Order = Order()
var orders: [DataSnapshot] = []
func watchOrders() {
let orderRef = database.child("orders/\(AppData.instance.currentStore!.key)")
orderRef.observe(.value, with: { snapshot -> Void in
self.orders.removeAll()
let orders = snapshot.children
while let order = orders.nextObject() as? DataSnapshot {
self.orders.append(order)
}
self.updateOrderViews()
})
}
func updateOrderViews() {
if let tillView = AppViews.instance.tillView {
tillView.tillTable.reloadData()
}
if let tillFunctionView = AppViews.instance.tillFunctionView {
tillFunctionView.calcTill()
}
if let tillReconcileView = AppViews.instance.tillReconcileView {
tillReconcileView.calcTill()
}
if let dispatchView = AppViews.instance.dispatchView {
dispatchView.loadDispatch()
}
if let dispatchRecapView = AppViews.instance.dispatchRecapView {
dispatchRecapView.getDispatchedOrders()
}
if let managerView = AppViews.instance.managerView {
managerView.getReport()
}
if let searchView = AppViews.instance.searchView {
searchView.filterOrders()
}
}
}
这不是标准行为;Firebase从网络中断中恢复。我们可以关闭wifi,然后再打开,FB继续运行。但是,如果看不到您的代码,就很难进行故障排除。请查看本指南,它不是标准行为;Firebase从网络中断中恢复。我们可以关闭wifi,然后再打开,FB继续运行。但是,如果看不到您的代码,就很难进行故障排除。请阅读本指南