Firebase QueryOrderedByChild以及EqualToValue和StartingAtValue组合
我试图通过等于某个值的Child查询Firebase但是在特定的post键处启动快照。
数据结构:
projectName -posts -postKey1 -storeId: 1 -postKey2 -storeId: 2 -postKey3 -storeId:3 -postKey4 -storeId:2 -postKey5 -storeId:3 -postKey6 -storeId:2
例:
我正在尝试使用queryEqualToValue("2")
来queryOrderedByChild("storeId")
但是我希望快照在它的顺序返回时以“postKey4”开始。
我当前的查询:
ref.queryOrderedByChild("storeId").queryEqualToValue("\(myId)").observeEventType(.Value, withBlock: {snapshot in
我知道你不能调用queryEqualToValue:
在queryStartingAtValue
调用之后的queryStartingAtValue
, queryEndingAtValue
或queryEqualToValue
但是我需要queryEqualToValue
来获取我的storeId。 任何帮助是极大的赞赏!
您可以将第二个参数传递给queryStartingAtValue
,该参数指定要启动的键。
ref.queryOrderedByChild("storeId") .queryStartingAtValue(2, childKey: "postKey4") .queryEndingAtValue(2) .observeEventType(.Value, withBlock: {snapshot in for childSnapshot in snapshot.children { print(childSnapshot.key!! } })
这打印:
postKey4
postKey6
我必须承认这是我第一次使用queryStartingAtValue
的第二个参数,所以我可能还没完全理解它。
你不能使用queryEqualToValue
的原因是只返回一个键,这不是你想要的。