2017-02-22 22 views
0

При запуске кода ниже я получаю пустой ответ, хотя соответствующие данные есть :В SDK для iOS (Swift 3.0) запросы базы данных Firebase, которые используют «queryOrdered/queryEqual», не работают должным образом

self.ref?.child("play-data/calories/GC5g4RUmy0WTTL5w3jSobefa9Ft2"). 
queryOrdered(byChild: "parentId"). 
queryEqual(toValue: "-KcpS62MR-73MozKJEVt"). 
observeSingleEvent(of: .value, with: { (snapshot) in 
      print("ITEMS \(snapshot.childrenCount)") 
     }) { (error) in 
      print("ERROR :: \(error)") 
     } 

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

{ 
    "play-data" : { 
    "calories" : { 
     "GC5g4RUmy0WTTL5w3jSobefa9Ft2" : { 
     "-KcpTSo0KrnNIzmAAD9O" : { 
      "endTime" : 1486955567572, 
      "id" : "-KcpTSo0KrnNIzmAAD9O", 
      "parentId" : "-KcpS62MR-73MozKJEVt", 
      "startTime" : 1486955550331, 
      "value" : 1.328500509262085 
     }, 
     "-KcpTT---0Zu-0eTd4a8" : { 
      "endTime" : 1486955627572, 
      "id" : "-KcpTT---0Zu-0eTd4a8", 
      "parentId" : "-KcpS62MR-73MozKJEVt", 
      "startTime" : 1486955567572, 
      "value" : 4.62333345413208 
     }, 
     "-KcpTT-1SvZrScKdceLC" : { 
      "endTime" : 1486955636994, 
      "id" : "-KcpTT-1SvZrScKdceLC", 
      "parentId" : "-KcpS62MR-73MozKJEVt", 
      "startTime" : 1486955627572, 
      "value" : 0.7260898947715759 
     } 
     } 
    } 

Так на основе данных, он должен напечатать 3, но делает 0. права доступа настроены правильно, так как у меня есть Android и веб-реализаций, которые работают хорошо с эти данные. Есть идеи?

ответ

1

ОК, похоже, что это было результатом того, что мои локальные и облачные версии данных были не синхронизированы и, следовательно, непоследовательные результаты во время тестирования (где мне приходилось запускать тесты, заменять данные после тестирования старой версией , повтор) я установил эти проблемы, добавив следующую строку в мой код инициализации:

ref?.child("play-data").keepSynced(true) 

Я уже это одно до:

db?.persistenceEnabled = true 

Где исх и дб - ссылки на FIRDatabaseReference/FIRDatabase.