2016-07-02 4 views
2

firebase dataПолучить новый Firebase данные - IOS Swift

Я новичок в программировании IOS. В моем проекте я сохранил данные в базе данных firebase. Мне нужно получить данные для всех значений «meanACC» и сохранить их в массиве, чтобы значение этого массива было [2,5,6,6]. Пожалуйста помоги.

+0

Почему именно вам эта информация? не могли бы вы объяснить немного больше? – adolfosrs

+0

Рассмотрим четыре объекта, каждый из которых имеет некоторое значение для «meanAcc» и «peakAcc», хранящихся в базе данных. Используя приложение, я хочу сохранить 5-й объект и хочу сравнить значение его «meanAcc» со значениями «meanAcc» четырех объектов, уже сохраненных в базе данных. –

ответ

2

С вашей текущей структурой вы должны делать это, загружая все данные и итерации по детям, чтобы сравнить каждый из meanAcc.

ref.child("Data").observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
    if let result = snapshot.children.allObjects as? [FIRDataSnapshot] { 
     for child in result { 
      //do your logic and validation here 
      child.value["meanAcc"] as! String 
     } 
    } else { 
     print("no results") 
    } 
}) { (error) in 
    print(error.localizedDescription) 
} 

Другой вариант заключается в случаях, когда сохранение нового значения под /Data, хранить значение meanAcc внутри другой ветви MeanAccs. И здесь я предполагаю, что остальная часть ваших данных не относится к вашей проверке.

/MeanAccs 
    /meanAccValue1 : true 
    /meanAccValue2 : true 

С этой структурой вы можете иметь массив всех meanAcc без необходимости загружать дополнительную информацию при Data.

ref.child("MeanAccs").observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
    if let result = snapshot.children.allObjects as? [FIRDataSnapshot] { 
     for child in result { 
      var meanAcc = child.key as! String 
      print(meanAcc) 
     } 
    } 
}) 
+0

Спасибо. Это сработало. –

+0

@guljosan Можете ли вы принять ответ тогда? :) – adolfosrs

0

Просто стандартный запрос и добавьте значения в массив?

var myArray = [Int]() 

    let dataRef = myRootRef.childByAppendingPath("Data") 

    dataRef.queryOrderedByChild("meanAcc").observeEventType(.Value, withBlock: { 
     snapshot in 

     for child in snapshot.children { 
      let val = child.value["meanAcc"] as! Int 
      myArray.append(val) 
     } 
     print(myArray) //prints the array [2, 5, 6, 6] 
    }) 
Смежные вопросы