Есть несколько опечаток в коде в вопросе, но это вроде как правильно.
Самая большая проблема - обработка опций - они принудительно разворачиваются, когда вы должны рассматривать их как опционы дляЗащитите ваш код.
, чтобы этот
let currentUserUid = Auth.auth().currentUser?.uid
был бы лучше, чем
guard let user = Auth.auth().currentUser else {return}
let uid = user.uid
Но, работая с вашим кодом, вот обновление, которое считывает значение с этого узлав виде строки и распечатывает его.
var test = String()
func readUserString() {
let currentUserUid = "iBagi96IMGbd2k6wUtXjPs0gmNq1"
let usersRef = self.ref.child("users")
usersRef.child(currentUserUid).child("test").observeSingleEvent(of: .value, with: { snapshot in
let test = snapshot.value as! String
print(test) //prints "testValue"
})
}