使用limitoLast获取数据使用endAt()返回null

时间:2017-10-09 09:13:34

标签: javascript firebase firebase-realtime-database

我想实现无限滚动以在我的应用中加载更多数据。我想从最新到最旧的数据,从下到上获取数据,所以我使用了limiToLast()

我已按照Implementing Infinite Scrolling with Firebase?来实现此功能。

这是我的查询功能

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

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

但如果我控制它,那么snap为空。 我究竟做错了什么? 我想从底部一次获取5个项目 如果我使用startAt()limitToFirst()使用相同的代码一次获取5个项目,则可以正常工作:

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

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

0 个答案:

没有答案