addSnapShotListener 触发所有依赖于它的函数?
addSnapShotListener triggers all the function dependent to it?
我了解到当 FireStore 中的数据发生变化时,AddsnapshotListener 会被实时触发。
但是,我不确定在下面的代码中触发了哪个函数。
是否只有函数 C 被触发?还是所有功能?
如果所有函数运行,函数A的参数会发生什么??
func C() {
print("C")
deckDocRef.addSnapshotListener { snapShot, err in
...
}
}
func B() {
print("func B")
C()
}
func A(a: Bool) {
if a {
print("a")
B()
} else {
print("b")
}
}
当数据发生变化时(以及在初始加载时)仅 您的侦听器中的代码(您问题中的 ...
)被调用。对函数 A
或 B
没有影响。所以任何需要数据库数据的代码都必须在快照回调中,从那里调用,或者以其他方式与该代码同步。
如果这让您感到惊讶,您可能是处理异步回调的新手。如果是这样,我建议您查看:
- SwiftUI - Wait until Firestore getDocuments() is finished before moving on
我了解到当 FireStore 中的数据发生变化时,AddsnapshotListener 会被实时触发。
但是,我不确定在下面的代码中触发了哪个函数。
是否只有函数 C 被触发?还是所有功能?
如果所有函数运行,函数A的参数会发生什么??
func C() {
print("C")
deckDocRef.addSnapshotListener { snapShot, err in
...
}
}
func B() {
print("func B")
C()
}
func A(a: Bool) {
if a {
print("a")
B()
} else {
print("b")
}
}
当数据发生变化时(以及在初始加载时)仅 您的侦听器中的代码(您问题中的 ...
)被调用。对函数 A
或 B
没有影响。所以任何需要数据库数据的代码都必须在快照回调中,从那里调用,或者以其他方式与该代码同步。
如果这让您感到惊讶,您可能是处理异步回调的新手。如果是这样,我建议您查看:
- SwiftUI - Wait until Firestore getDocuments() is finished before moving on