我想将数据库中的一些数据用于以后的目的。但是,我想要加载的数据可能还不存在,因为观察到的数据是朋友请求的字典,这些字典在第一次使用应用程序时不存在。虽然。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)
}
它没有进入观察方法...... 有谁知道为什么会这样?
答案 0 :(得分:1)
只有在有孩子时才会调用key = input() # "hello"
new_key = list(key) # ['h','e','l','l','o']
new_key[0] = 'X' # ['X','e','l','l','o']
完成处理程序。如果没有子节点,则在.childAdded
下添加子节点之前不会调用它。