如何解决“用户名”数组的nil值问题?

时间:2019-01-02 23:18:17

标签: firebase dictionary firebase-realtime-database null tableview

我正在尝试在下表中的tableView上显示关注者的用户名。它以前只是在作为user.uid起作用,所以我向函数跟随器(下半部分)添加了代码,但是tableView上没有任何显示。在调试时,我注意到“用户名”数组的值为nil,但应该有一个非null的值。不知道出什么问题了。

static func followers(for user: User, completion: @escaping ([String]) -> Void) {
    var usernames = [String]()
    let followersRef = Database.database().reference().child(Constants.Reference.followers).child(user.uid)

    followersRef.observeSingleEvent(of: .value, with: { (snapshot) in
        guard let followersDict = snapshot.value as? [String : Bool] else {
            return completion([])
        }

        let followersKeys = Array(followersDict.keys)

        for follower in followersKeys {
            let ref2 = Database.database().reference().child("users").child(follower)
            ref2.observeSingleEvent(of: .value, with: { (snapshot) in

                guard let usernameDict = snapshot.value as? [String: Any?] else {
                    return completion([])
                }
                usernames.append(usernameDict["username"] as! String)
            })
        }
        completion(usernames)
    })
}

}

Firebase数据库

enter image description here

表格

enter image description here

0 个答案:

没有答案