2016-11-11 2 views
0

Я пытаюсь напечатать array от firebase. Фактически, если мы нажмем лекарство в списке (tableviewcontroller), он покажет его определенные дозировки. Я застрял, чтобы получить список дозировок. Вот мой код для получения данных из firebase. Любая помощь приветствуется. Заранее спасибо. Моя firebase структура выглядит следующим образом .. firebase imgКак получить ребенка (массив) внутри другого ребенка из базовой базы

func loadDataFromFirebase() { 


    databaseRef = FIRDatabase.database().reference().child("medication") 


    databaseRef.observeEventType(.Value, withBlock: { snapshot in 


     for item in snapshot.children{ 
     FIRDatabase.database().reference().child("medication").child("options").observeEventType(.Value, withBlock: {snapshot in 
       print(snapshot.value) 
      }) 
     } 

    }) 

ответ

0

Вы должны смотреть на firebase документации https://firebase.google.com/docs/database/ios/read-and-write

но если я понять вашу идею, вы, вероятно, имеет класс модели для ваших лекарств. Таким образом, чтобы получить ваши данные, которые вы должны сделать, как это для Swift 3.0:

func loadDataFromFirebase() { 


databaseRef = FIRDatabase.database().reference().child("medication") 


databaseRef.observe(.value, with: { (snapshot) in 

    for item in snapshot.children{ 
    // here you have the objects that contains your medications 
    let value = item.value as? NSDictionary 

    let name = value?["name"] as? String ?? "" 
    let dossage = value?["dossage"] as? String ?? "" 
    let type = value?["type"] as? String ?? "" 
    let options = value?["options"] as? [String] ?? "" 

    let medication = Medication(name: name, dossage: dossage, type: type, options: options) 
    // now you populate your medications array 
    yourArrayOfMedications.append(medication) 
    } 

    yourTableView.reloadData() 
}) 
} 

Теперь, когда у вас есть массив со всеми лекарствами, вам просто нужно заполнить ваш Tableview с этим лекарством. Когда кто-то прижимать деталь на столе вы можете просто позвонить prepareForSegue: и отправить yourArrayOfMedications[indexPath.row].options к следующему представлению

+0

пожалуйста в быстром 2.2 .. – tecE

+0

я хочу напечатать, что «варианты» в отдельном табличном, если выбрать ее название лекарства. Проблема в том, что в array..so извлечение его в виде строки показывает ошибку ... застрял здесь надолго .. – tecE

0
  • Решение такое же, как и выше, но с небольшим изменением.

    func loadDataFromFirebase() { 
        databaseRef = FIRDatabase.database().reference().child("medication") 
        databaseRef.observe(.value, with: { (snapshot) in 
    
        for item in snapshot.children{ 
        // here you have the objects that contains your medications 
        let value = item.value as? NSDictionary 
    
        let name = value?["name"] as? String ?? "" 
        let dossage = value?["dossage"] as? String ?? "" 
        let type = value?["type"] as? String ?? "" 
        let options = value?["options"] as? [String : String] ?? [:] 
    
        print(options["first"]) // -> this will print 100 as per your image 
        // Similarly you can add do whatever you want with this data 
    
        let medication = Medication(name: name, dossage: dossage, type: type, options: options) 
        // now you populate your medications array 
        yourArrayOfMedications.append(medication) 
    } 
    
    yourTableView.reloadData() 
    }) 
    } 
    
Смежные вопросы