2016-07-31 3 views
0

Я пытаюсь получить некоторые данные из моей Firebasedatabase, но я не могу это сделать. Сначала я создал файл .json с данными, а затем импортировал его в Firebase. Похоже, что, но это намного больше:Извлечение конкретных данных из firebase

enter image description here

Теперь я пытаюсь распечатать все «Бренды», как «CATCH», «сработанный жевательный» и т.д., но я не могу по некоторым причинам.

Вот как я это делаю. Я загружаю его в viewDidLoad(). Я знаю, что это неправильно, но только для тестирования:

func fetchBrands(){ 
    ref = FIRDatabase.database().reference() 
    ref.observeSingleEventOfType(.Value, withBlock: { snapshot in 

     if !snapshot.exists() { return } 

     //print(snapshot) 

     if let snusBrand = snapshot.value!["Brands"] as? String { 
      print(snusBrand) 
     } 

     // snapshot.childSnapshotForPath("full_name").value as! String 
    }) 


} 

Что я делаю неправильно? Я также установить read и write правила из Firebase к true

Единственное, что он печатает это:

enter image description here

+0

какая ошибка вы получаете? что печатает (snusBrand) 'prints? – adolfosrs

+0

@adolfosrs Единственное, что он печатает, - это длинный текст про прокси и т. Д. Проверьте правильность. –

+0

Используйте 'snapshot.key', чтобы получить ключ каждого документа. – Odonno

ответ

2

Вы можете попробовать обновить реф, чтобы она указывала на детей Brands и итерация на возвращенный снимок, подобный этому:

ref = FIRDatabase.database().reference().child("Brands") 

ref.observeEventType(.Value, withBlock: { snapshot -> Void in 
    for brands in snapshot.children { 
     print(brands) 
    } 
    }) 
+0

Все еще ничего :( –

+0

hmm, try: 'ref = FIRDatabase.database(). Reference(). Child (" Snuses "). Child (" Brands ")' –

+0

Должно использовать событие child_added и свойство 'key' каждый снимок – Odonno