И когда вы закончите с этим наблюдателем, остановите его для сохранения памяти, выполнив следующие действия:

лал функцию, которая подключается к FireBase, идет по определенному пути, а затем дает мне значение. Когда я печатаю (snapshot.value), он дает мне нужное значение. Когда я вызываю функцию, userProfile пуст. Мне нужен userProfile для возврата строки снимка.

 func getUserData(uid: String) -> String{
   var _REF_USERNAME = FIRDatabase.database().reference().child("users").child(uid).child("profile").child("username")

     var userProfile = String()


    _REF_USERNAME.observe(.value, with: {(snapshot) in
        print("SNAP: \(snapshot.value)")
            userProfile = snapshot.value as! String

    })
    print(userProfile)
    return userProfile
}

Ответы на вопрос(1)

Ваш ответ на вопрос