REST APIにstartAt(value, [key])
の同等物がありますか?特にオプションのキーパラメータ。重複のないプロパティのREST APIによるFirebaseデータのページ
https://www.firebase.com/docs/web/api/query/startat.html
詳細:私はREST APIを使用して、プロパティ(dueDate)にコレクションをページングしています
。ページングスルーは機能しますが、dueDateの値は一意ではないため、連続する各ページに複数の重複が含まれることがあります。最悪の場合、ページサイズよりも重複した日付が重複している可能性があります。
Firebaseのページングの仕組みのため、前のページの最後の項目が1つ重複していると思います。
JS SDKのstartAtメソッドは、次のクエリを作成するときに最後のキーを提供するために2番目の引数をサポートしていますが、これは存在しないか、REST APIには記載されていません。
REST APIドキュメントでは、クエリパラメータの完全な仕様は提供されず、「auth」や「shallow」などのREST固有のパラメータのみが提供されます。 ORDERBY
は、より多くの情報のために注文したデータ上のガイドのセクションを参照してください。
limitToFirst、limitToLast、startAt、ENDAT、equalTo
は、より多くの情報のためのデータを照会する方法のガイドのセクションを参照してください。
ドキュメント:NodeJSでhttps://firebase.google.com/docs/reference/rest/database/#section-query-parameters
要求:
var request = require('request-promise');
var startAt = 0
var now = new Date().getTime(); // calculate once per paginated query
getPage(startAt, now)
// then process page
// then get the next page
// etc
function getPage(startAt, endAt, lastId) {
var params = {
auth: /* ... auth token ... */,
orderBy: '"dueDate"',
startAt: startDate, /* startDate is a Unix timestamp in milliseconds */
endAt: endAt,
limitToFirst: 1000
};
return request.get({
url: 'https://my-firebase.firebaseio.com/todos.json',
qs: params,
json: true,
timeout: 20000 /* ms */
});
}
私はFirebase REST API: How to fetch data by priority like startAt/endAt in JS?を見てきました。より新しい答えは、私が何かを逃していない限り、上記のように、この質問に答えない古い文書を指します。古いドキュメントと新しいドキュメントページのRESTセクションのすべてを読みました。