2017-02-22 8 views
0

以下のコードを実行すると、対応するデータが存在していても空の応答が返されます:iOS SDK(Swift 3.0)では、「queryOrdered/queryEqual」を使用するFirebaseデータベースクエリが期待通りに機能しません。

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を印刷する必要がありますが、私はと正常に動作Androidやウェブの実装を持っているので、0アクセス権が正しく設定されませんこのデータ。何か案は?

答えて

1

OK、ローカルとクラウドバージョンのデータが同期していないため、テスト中に矛盾した結果が発生したように見えます(テストを実行する必要があった場所、テスト後のデータを古いバックアップ、リピート)私は自分のinitコードに次の行を追加することでこれらの問題を修正:

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

私はすでに前にこれを持っていた:

db?.persistenceEnabled = true 

REFデシベルは、FIRDatabaseReference/FIRDatabaseへの参照です。

関連する問題