Это может быть много работы для извлечения одного значения из firebase и получения его, чтобы я мог использовать его вне замыкания, но я не могу заставить что-нибудь упростить работу ...
Хотя у меня может быть, а может и нет, создать приличный обработчик, пока он не выдает ошибок, пока я не попытаюсь вызвать его с помощью, а затем я получаю: Невозможно преобразовать значение типа 'String' в ожидаемый тип аргумента '(String) - > () '
A: Как вызвать функцию?
Б: Есть ли более простой способ сделать это?
var myName = ""
func getMyName(completion: @escaping (String) -> ()){
if let uid = Auth.auth().currentUser?.uid{
databaseRef.child("bodhi").child((uid)).observeSingleEvent(of: .value, with: { (snapshot) in
if let bodhiDict = snapshot.value as? [String: AnyObject]
{
let myName = (bodhiDict["Name"] as? String)!
print ("myName in the closure: \(myName)")
completion(myName)
} else {
completion("")
}
})
}
}
getMyName(completion: (myName))
print ("myName Outside the closure: \(myName)")