我正在尝试使用Firebase相对较新的查询功能实现无限滚动(也称为分页)。我被困在一个有希望的小问题上。
我要求前10个结果如下:
offersRef.queryOrderedByChild(orderedByChildNamed).queryLimitedToFirst(10).observeEventType(.ChildAdded, andPreviousSiblingKeyWithBlock:childAddedBlock, withCancelBlock:childAddedCancelBlock)
但是当我想要获得下一个10时,我必须从第10个键开始作为我的起始值。我真正想要的是传递第10个密钥并告诉firebase我希望它偏移1,以便它将观察下一个10.但我认为“offset”是旧语法(在查询功能之前)已推出),不能在这里使用。
所以我试着要求11然后忽略第一个,但这是有问题的,因为你可能会很快猜到,因为我观察到的结果可以(并且会)改变:
offersRef.queryOrderedByChild(orderedByChildNamed).queryStartingAtValue(startingValue,childKey:startingKey!).queryLimitedToFirst(10+1).observeEventType(.ChildAdded, andPreviousSiblingKeyWithBlock:childAddedBlock, withCancelBlock:childAddedCancelBlock)
为了清楚起见,以下是我的应用中定义的所有变量,与问题没有特别密切关系:
offersRef orderedByChildNamed childAddedBlock childAddedCancelBlock