在iOS SDK(Swift 3.0)中,使用“queryOrdered/queryEqual”的Firebase数据库查询不能按预期工作

问题描述:

运行下面的代码时,即使相应的数据存在:在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,但不为0的权限配置正确,因为我有做工精细与Android和web实现这个数据。有任何想法吗?

好的,看起来像是我的本地数据和云版本数据不同步的结果,因此测试期间结果不一致(我必须运行测试,将旧测试数据替换为较旧的备份,重复)我加入这行到我的初始化代码修正这些问题:

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

我已经有这个前:

db?.persistenceEnabled = true 

裁判分贝是对FIRDatabaseReference/FIRDatabase的引用。