2016-06-21 9 views
0

私のページが読み込まれたら、Firebaseデータベースから20個のアイテムを読み込みたいと思います。しかし、ある点を下にスクロールすると(無限のスクロール)、FirebaseにNEXT 20の項目を表示したい。Javascript - 一度にFirebaseからアイテムのグループにアクセスするにはどうしたらいいですか?

ドキュメントを見ても、最初の20個のオブジェクトを通過し、その後20個の次のオブジェクトを通過する明確な方法はありません。

私は三つの項目をロードするには、このことを考えていましたが、それは次の3つの項目行うことはありません。

ref.limitToLast(numItemsPerLoad).on("child_added", function(snapshot, prevChildKey) { 
    writeToPage(snapshot, ul); 
}); 

任意のアイデア?新しいFirebaseドキュメントはだから私は私のデータベースの最初のリンクの「キー」子供に私のstartAtKeyを初期化しようとしている古いもの

EDIT

ほど簡単ではありません。しかし、私のプリント・ステートメントはすべて駄目です。 Javascriptがどこから戻ってくるのか、何か分からないことがありますか?ここで

はコードです:

var ref; 
var startAtKey; 
function extractImage(){ 
    var database = firebase.database(); 

    var featuredRef = database.ref("Featured/"); 
    var projectsRef = database.ref("Projects/"); 
    var featured_ul = document.getElementById("featured_links"); 
    var normal_ul = document.getElementById("normal_links"); 

    //Read featured section first 
    readSection(featuredRef, featured_ul); 

    startAtKey = initializeStartAtKey(projectsRef); 
    console.log("startAtKey is " + startAtKey); //This doesn't print '1' like it should 

    //Randomly read the rest of the sections 
    readSection(projectsRef, normal_ul); 
} 

function initializeStartAtKey(ref){ 
    console.log("INSIDE INTIALIZE"); 
    ref.orderByChild("key").limitToFirst(1).once("child_added", function(snapshot){ 
     console.log("key is " + snapshot.val().key); 
     return snapshot.val().key; 
    }); 
} 

答えて

3

あなたが.startAt().endAt()方法で範囲クエリを行うことができます。

キャッチは、開始するためのキーを知る必要があります。これは、アプリケーションコードを設定する方法によって異なります。より多くのページを読み込む前に、ページの最後のアイテムが何であるか把握して、startAtKeyにそのアイテムのキーを使用する方法を見つけてください。

See the docs here for more info.

+0

私はstartAtKeyを追跡する方法を把握しようとしていたが、私はしても、単純に最初の項目の最初の値に初期化することはできません(編集を参照してください) – Homerdough

関連する問題