2017-07-27 5 views
1

私は自分のキーとしてuuidを持つユーザーのデータを持っています。私は各ユーザーにメールを送りたいと思っていますが、メールを一括して送信したくないので、ユーザーの範囲を取得したいのです。例えばファイアベース内のデータの範囲を取り出す方法

は、私が1000年のユーザーのは、今、私はその後、101-200、201-300など1-100ユーザーを範囲にメールを送信する必要があります。どうすればこれを達成できますか? 私はstartAt()endAt()機能を見てきましたが、私の質問は、私は最初と最後のユーザーのキーを知らないです。だから私はその方法から範囲を取得することはできません。その後

query = ref.orderByKey().limitToFirst(100) 

ユーザーを処理するように、あなたが処理されてきた最後のキーを追跡:

答えて

4

は最初の100人のユーザーを取得するには、上のクエリを実行したい

vast lastSeenKey; 
query.once("value", function(snapshot) { 
    snapshot.forEach(function(userSnapshot) { 
    lastSeenKey = userSnapshot.key; 
    }); 
}); 

query = ref.orderByKey().startAt(lastSeenKey).limitToFirst(101) 

あなたはワットことに注意しましょう。そして、あなたが見てきた最後のキーで、クエリの開始を行う、次の100人のユーザーをロードしますこのクエリの最初のユーザは前のクエリの最後のユーザと同じになるため、ここで1つの余分なアイテムを取得します。

+0

ありがとうFrank van Puffelen – FaisalAhmed

関連する問題