1
在我的iOS應用中,用戶可以通過搜索唯一的用戶名來添加好友。如何取消firebase觀察單個事件數據庫調用
用戶在textField中鍵入用戶名,我有一個textFieldDidChange通知,每當文本更改時觸發該通知。
在該方法中,我調用下面的Firebase方法來檢查用戶名是否存在。
func searchFor(_ username: String) {
guard let uid = FIRAuth.auth()?.currentUser?.uid else {
return
}
let lowercaseUsername = username.lowercased()
let ref = FIRDatabase.database().reference()
ref.child(FirebaseDatabaseBranchNames.usernames.rawValue).child(lowercaseUsername).observeSingleEvent(of: .value, with: { [unowned self](snapshot) in
if snapshot.exists() {
if let usernameUid = snapshot.value as? String {
self.isUserAlreadyAFriend(ref, uid: uid, usernameUid: usernameUid)
}
} else {
// username doesn't exist
}
}, withCancel: nil)
}
如何在再次執行此操作前取消此方法?
一如既往,感謝弗蘭克(需要有這個地方,我可以複製和粘貼:)) – Edward
嗨@Frank假設你不想使用觀察,而不是observeSingleEvent爲了能夠使用手柄刪除它 – Edward
這個問題具體是關於'observeSingleEvent',所以這就是我的回答。在這種情況下,分離偵聽器的用處是相當有限的,但它確實涵蓋了一些邊緣情況。 –