我的程序中有一个函数可以将监听器附加到 Firestore。我想在处理闭包内的结果后删除此监听器。
这是我试过的-
func uniqueUserName(userName : String) {
let listener = Firestore.firestore().collection("users").whereField("userName", isEqualTo: self.userNameTextField.text!).addSnapshotListener { (snapshot, error) in
guard let snapshot = snapshot?.documents else {fatalError()}
if snapshot.isEmpty {
print("True")
} else {
print("False")
}
}
listener.remove()
}
当我这样做时,闭包内的 Action 没有被执行。我假设这是因为函数在闭包完成之前返回。
只有在关闭完成后才能移除此监听器的正确方法是什么?
最佳答案
如果您的监听器只是在回调中立即取消注册,您可能根本不需要监听器。相反,使用 getDocuments()一次获取查询结果,您不必担心注销任何监听器。
关于ios - 如何在关闭任务完成后删除监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58433134/