2017-10-06 16 views
0

私は、Webアプリケーションに機能をスクロールする際に、より多くのデータをロードしたいと思っていました。 ユーザーがページの最後に到達したときにデータを取得するためのオンスクリーンリスナーを設定しました。ここでデータのクエリを停止したら、最後に到達しました

は、データをフェッチするための機能である:

var lastKey = ''; 
var myData = []; 

async fetchData(){ 
     try{ 
      var snap = await firebase.database().ref(category).orderByKey().startAt(lastKey).limitToFirst(15).once('value'); 
      snap.forEach(childSnap => { 
       myData.push(childSnap.val(); 
       lastKey = childSnap.key; 
      }); 
     }catch(err){ 
      //handle errors 
     } 
    } 
} 

コードが正常に動作します。 フラグが設定され、上記の関数の呼び出しを停止し、表示するデータが残っていないことをユーザーに通知できるように、リストが終了したことを知るには

答えて

2

15個の要素と結果あなたが最後に到達した長さが15未満です。

+0

しかし、どのように私が取得した要素の長さを知っていますか? 'Object.keys(snap).length'を実行する必要がありますか? –

+0

私はカウンタを設定し、forEachループの各反復でカウンタを1ずつ増やしました。カウンタが15未満の場合、停止するフラグを設定しましたより多くのフェッチ....ありがとう。より良い方法があれば返信してください –

関連する問題