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
Спасибо за ваше время, если вы можете помочь.