如何删除 SnapShot 侦听器 (Firestore - Swift)

1 firebase swift google-cloud-firestore

func addUserObserver(_ update: @escaping () -> Void) {
    FriendSystem.system.USER_REF.addSnapshotListener { snapshot, error in
        self.userList.removeAll()

        guard error == nil else {
            print("Error retreiving collection")
            return
        }
        for document in snapshot!.documents {
            let email =  document.get("email") as! String
            if email != Auth.auth().currentUser?.email! {
                self.userList.append(User(userEmail: email, userID: document.documentID))
            }
            update()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了一个监听器,但不知道如何断开/删除它。谢谢!

Fra*_*len 6

如有关分离侦听器的文档中所示,您需要保留从中获得的值addSnapshotListener

var listener = FriendSystem.system.USER_REF.addSnapshotListener { snapshot, error in
    ...
Run Code Online (Sandbox Code Playgroud)

然后你可以删除监听器:

listener.remove()
Run Code Online (Sandbox Code Playgroud)