在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的引用。