我想使用数据库中的一些数据以备后用。然而,我想要加载的数据可能还不存在,因为观察到的数据是 friend 请求的字典,在第一次使用应用程序时并不存在。虽然 .childAdded
观察者应该这样做,但它只是停在那里,代码不会进一步执行
func getFriendRequest(_ uid: String, completion: @escaping ([String]) -> Void) {
var friendRequests = [String]()
let currentUserRef = DatabaseReference.users(uid: self.currentUser.uid).reference()
currentUserRef.child("sendFriendRequest").observe(.childAdded, with: { (snap) in
let request = FriendRequest(dictionary: snap.value as! [String : Any])
let requestedUid = request.uid
print(requestedUid)
friendRequests = [requestedUid]
completion(friendRequests)
}, withCancel: nil)
}
它没有进入观察方法...... 有人知道这是为什么吗?
最佳答案
.childAdded
完成处理程序只有在有 child 时才会被调用。如果没有子节点,它将不会被调用,直到您在 sendFriendRequest
下添加一个子节点。
关于ios - Firebase .childAdded 不起作用,因为观察到的 child 可能还不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47730905/