在IOS上重新启动应用之前,Firebase数据尚未发送到服务器

时间:2017-05-22 06:09:34

标签: ios swift firebase firebase-realtime-database

我在childChanged应用中使用了childAddedchildRemovedswift个观察员。出于某种原因,在进行更改的应用重新启动之前,数据不会跨设备更新。关于可能导致这种情况的任何想法。当我看到观察员的价值时,我从未遇到过这个问题。

        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()
        })

1 个答案:

答案 0 :(得分:0)

问题是由于在另一个视图控制器中调用removeAllObservers。 removeAllObservers删除了应用程序中的所有观察者,而不仅仅是您调用的引用。使用句柄可以提供所需的功能。