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调用之后的queryStartingAtValuequeryEndingAtValuequeryEqualToValue但是我需要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的原因是只返回一个键,这不是你想要的。