各アイテムにマーカーを保存する必要があります(子供の作成時間に基づいてアイテムを徐々にダウンロードする場合はタイムスタンプが必要な場合があります)。
その後、単にこのようなクエリを使用します。これが機能するためにはということ
var startingValue: String = ""
if itemsArray.count == 0 {
startingValue = Date() // start at the current date and work your way backwards
}
else {
startingValue = itemsArray.last.timestamp // last item we stopped at in the retrieval process
}
itemsRef.queryOrderedByChild("timestamp").queryStartingAtValue(startingValue).queryLimitedToFirst(numberOfItemsToBeRetrievedPerQuery).observeEventType(FIRDataEventType.value, withBlock: { (snapshot) in
// append the retrieved items to your array
})
注意(私は仮定していた、最初の最新アイテムを取得するには、あなたが何をしようとしてです)、 の負のという記号(これは逆になる)を使用してUNIXのタイムスタンプを保存する必要があります。だからあなたの構造は次のようになります:
"items" : {
"item1Key" : {
"itemName": "Item 1"
"moreItemData": "random data"
"timestamp": -1.57983164250361E12
},
"item2Key" : {
"itemName": "Item 2"
"moreItemData": "random data"
"timestamp" : -1.42182335765741E12
},
...
}
あなたはこのquestion年代はあなたの実装に役立つ答えるかもしれません!
あなたがやっていることはかなり多くのページングです。ユーザーがデータを移動するにつれて、より多くのデータがロードされます。 1回に1回、3回に1回、テーブルビューにデータを取り込む10のいずれの処理でも、プロセスはほぼ同じです。 Firebase Paginationで検索してください - 多くの回答と代替の方法があります。 – Jay