我在childChanged
应用中使用了childAdded
,childRemoved
和swift
个观察员。出于某种原因,在进行更改的应用重新启动之前,数据不会跨设备更新。关于可能导致这种情况的任何想法。当我看到观察员的价值时,我从未遇到过这个问题。
orderRef.keepSynced(true)
orderRef.observe(.childAdded, with: { snapshot -> Void in
self.orders = self.orders.filter({$0.key != snapshot.key})
self.orders.append(snapshot)
self.loadDispatch()
})
orderRef.observe(.childChanged, with: { snapshot -> Void in
self.orders = self.orders.filter({$0.key != snapshot.key})
self.orders.append(snapshot)
if let value = snapshot.childSnapshot(forPath: "settled").value as? Bool {
if !value {
self.loadDispatch()
}
}
})
orderRef.observe(.childRemoved, with: { snapshot -> Void in
self.orders = self.orders.filter({$0.key != snapshot.key})
self.loadDispatch()
})
答案 0 :(得分:0)
问题是由于在另一个视图控制器中调用removeAllObservers。 removeAllObservers删除了应用程序中的所有观察者,而不仅仅是您调用的引用。使用句柄可以提供所需的功能。