我想了解即使未显示View Controller,如何使addSnapshotListener
接收更新。
让我们说我在ViewController A上调用addSnapshotListener
然后过了一段时间后我去了View Controller B.
在ViewController B中,我将一些数据添加到ViewController A正在侦听的addSnapshotListener
的集合中。但是,从ViewController B返回ViewController A后,似乎没有查询新元素。
我考虑过调用ViewController A的addSnapshotListener
到viewDidAppear
,以便更新它但不会要求我之前删除所有的侦听器吗?难道没有更好的解决方案吗?
答案 0 :(得分:0)
只要在视图控制器A消失时不移除侦听器,就应该在对堆栈顶部推送的viewController进行更改时调用侦听器。我已经开始工作了。在侦听器代码中,请务必检查它是否不是来自缓存,因为有时它会多次调用。您还可以使用此代码检查文档更改。
snapshot.documentChanges.forEach { diff in
if (diff.type == .added) {
print("New city: \(diff.document.data())")
}
if (diff.type == .modified) {
print("Modified city: \(diff.document.data())")
}
if (diff.type == .removed) {
print("Removed city: \(diff.document.data())")
}
}