Загрузить данные из firebase на метку? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть данные в базе данных firebase, которые я хотел бы загрузить в UILabel с помощью Swift.

Моя структура данных выглядит следующим образом:

like-1bf89addclose
 artists
 -LP6zVO8iekRMMOWe7nm
 artistGenre: pop
 artistName: postmalone
 id: 920930

И мой код Swift выглядит следующим образом:

override func viewDidLoad() {
    super.viewDidLoad()

   ref = FIRDatabase.database().reference()
    refHandle = ref.observe(FIRDataEventType.value, with: {(snapshot) in
        let dataDict = snapshot.value as! [String: AnyObject]

        print(dataDict)

    })

    ref.child("artists").observeSingleEventOfType(.value, with: {(snapshot) in
        let artist = snapshot.value!["artistName"] as! String
        let genre = snapshot.value!["artistGenre"] as! String

        self.artistlLabel.text = artist
        self.genreLabel.text = genre

    })
}

где моя ошибка?Я попытался выполнить поиск в Интернете, но большинство примеров объясняют только, как вводить данные в таблицы, в которых есть другой код, который я пытался понять и реструктурировать, но не смог.Я знаю, что с моим рефером должно быть что-то не так, но я не могу понять.

Я следую учебному пособию по YouTube, и это работает:

let userID: String = (FIRAuth.auth()?.currentUser?.uid)!
ref.child("Users").child(userID).observeSingleEventOfType(.value, with: {(snapshot) in
    let email = snapshot.value!["Email"] as! String
    let password = snapshot.value!["Password"] as! String

    self.emailLabel.text = email
    self.passwordLabel.text = password

})

** проблема сэтот код мне не нужен для аутентификации (пользователям не нужно заходить в мое приложение, они просто вводят информацию).

1 Ответ

0 голосов
/ 19 октября 2018

Вы пропустили уровень -LP6zVO8iekRMMOWe7nm в вашей ссылке.Попробуйте это:

ref.child("artists/-LP6zVO8iekRMMOWe7nm").observeSingleEventOfType(.value, with: {(snapshot) in
    let artist = snapshot.value!["artistName"] as! String
    let genre = snapshot.value!["artistGenre"] as! String
    print("\(artist) \(genre)")

    self.artistlLabel.text = artist
    self.genreLabel.text = genre
})

Если вы хотите загрузить всех исполнителей, вы можете загрузить /artists и затем просмотреть результаты:

ref.child("artists/-LP6zVO8iekRMMOWe7nm").observeSingleEventOfType(.value, with: {(snapshot) in
  for child in snapshot.children.allObjects as! [DataSnapshot] {
    let artist = child.value!["artistName"] as! String
    let genre = child.value!["artistGenre"] as! String
    print("\(artist) \(genre)")
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...