Публикация данных не работает // Доступ к данным за пределами закрытия // Swift Firebase - PullRequest
1 голос
/ 26 апреля 2020
static func createPost(post: userPost, completion: @escaping (Error?, DatabaseReference?) -> ()) {
    // We can assume that a user is already signed in
    // initialize the post information
    post.setTimestamp()
    //post.setLocation()
    // Grab the current user's information for associating it with the post
    if let user = Auth.auth().currentUser {
        post.setUID(uid: user.uid)
        let findUserName = Database.database().reference().child("users").child(user.uid)
        findUserName.observeSingleEvent(of: .value, with: { (snapshot) in
            let dictionary = snapshot.value as? [String: AnyObject]
            let theUserName = dictionary?["username"] as? String ?? ""
            //print("test:", theUserName)
            post.setPostUserName(username: theUserName)
        })
    }
}

post.setUID(uid: user.uid) <- функция работает и будет публиковать идентификатор пользователя с постом. <code>post.setPostUserName(username: theUserName) <- не публиковать поля имени пользователя, полученные от пользователей. <code>print(theUserName) внутри замыкания извлекает имя пользователя

Если я удаляю post.setPostUserName(username: theUserName) из наблюдаемого единого события, я проверял его с post.setPostUserName(username: "test"), и он работает. Если я напишу post.setPostUserName(username: theUserName), он не распознает theUserName

Спасибо за ваше время, если вы можете помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...