Firebase .childAdded不起作用,因为观察到的孩子可能还不存在

时间:2017-12-09 16:58:29

标签: ios swift firebase firebase-realtime-database

我想将数据库中的一些数据用于以后的目的。但是,我想要加载的数据可能还不存在,因为观察到的数据是朋友请求的字典,这些字典在第一次使用应用程序时不存在。虽然。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)
}

它没有进入观察方法...... 有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

只有在有孩子时才会调用key = input() # "hello" new_key = list(key) # ['h','e','l','l','o'] new_key[0] = 'X' # ['X','e','l','l','o'] 完成处理程序。如果没有子节点,则在.childAdded下添加子节点之前不会调用它。