Получить текущего пользователя из базы данных Firebase в реальном времени (Swift 4/5) - PullRequest
0 голосов
/ 20 июня 2019

Я хочу, чтобы имя моего текущего пользователя отображалось на панели навигации.

При этом используется новейшая версия Swift (5) и новейшая версия Firebase для iOS (6.3.0).

Это база данных, которая у меня есть. НАСТОЯЩИМ ПОЛЬЗОВАТЕЛЕМ является "Rishabh"

rishabhmessage-cd077
  users
    -LhfNh3w6jYW4t71y2BM
        email: "J@j.com"
        name: "Jon"
    -LhkGgXlWOUaZiR3PruD
        email: "R@r.com"
        name: "Rishabh"
let uid = Auth.auth().currentUser?.uid

Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value,  with: {
      (snapshot) in
       print("1")
       if let dictionary = snapshot.value as? [String: AnyObject] {
            print("2")
            self.navigationItem.title = dictionary["name"] as? String
       }
}, withCancel: nil)

Это должно обновить заголовок панели навигации ДЛЯ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ, которого зовут "Rishabh". Я добавил несколько операторов печати для отладки. print ("1") отображается на консоли, а print ("2") - нет.

1 Ответ

1 голос
/ 20 июня 2019

Либо snapshot.value имеет значение nil, либо это не тип: [String: AnyObject]. То, что я хотел бы сделать, это разбить строку словаря if let, а затем посмотреть, что такое snapshot.value

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