2017-02-20 19 views
0

Я пытаюсь получить данные из базы данных Firebase. Я использую JSON для получения данных. Использование библиотеки SwiftyJSON.Проблема при попытке получить данные из Firebase с Swift 3

Вот мой код:

func retrieveUserDatabaseAdress(userID: String) { 

    let userRef = ref.child("users").child(userID) 

    UIApplication.shared.isNetworkActivityIndicatorVisible = true 
    userRef.observeSingleEvent(of: .value, with: { snapshot in 

     let json = JSON(snapshot) 
     print("test") 
     self.address = json["address"].stringValue 
     UIApplication.shared.isNetworkActivityIndicatorVisible = false 

    }) { error in 
     print(error.localizedDescription) 
    } 
} 

Вот моя база данных иерархии

-users 
---S4KaKn5Qz4bDDha57DMLcnaCHn22 
-------address: ... 
-------email: ... 
-------name: ... 
-------tel: ... 

Выпуск: он всегда получает нулевую ценность. Кроме того, печать («тест») не выполняется.

Я проверил, был ли пользователь вошел в систему, чтобы получить правила чтения: все в порядке. Я также пробовал другие методы, не работая. Моей Firebase базы данных, кажется, настроены правильно, потому что я могу записать данные ... Но не могу прочитать данные ...

+0

Да, я уже использовал его, и он отлично работает. Я также пробовал без JSON, и это не сработало. –

+0

Параметр пропуска внутри функции JSON как snapshot.children – iParesh

+0

Напишите anwser с кодом, который вы предлагаете! ;) –

ответ

0

Первого корневой проход путь базы данных, как «пользователи ».
Этот код отлично работает в моей базе данных. Это может сработать для вашего дела. Вы должны попробовать :)

let childRef = FIRDatabase.database().reference(withPath: "users") 

     childRef.observe(.value, with: { snapshot in 

      for item in snapshot.children { 

       let json = JSON(item) 
       print(json) 

      } 

     }) 
+0

Тот же вопрос ... Ничего не печатается и не возвращается ... –

0

Это должно работать:

userRef.observeSingleEvent(of: .value, with: { (snapshot) in 
    if let value = snapshot.value as? [String: AnyObject] { 
     let json = JSON(value) 
     print(json) 
    } else { 
     // No value 
    } 
}, withCancel: { (error) in 
    print(error) 
}) 
+0

Он не работает ... –

+0

Что он печатает? –

+0

Ничего! Это так странно! Я могу попытаться напечатать что-нибудь ... Я не буду печатать его ... –