是否可以在Firebase上加载特定数量的数据?

时间:2016-11-15 08:06:15

标签: android firebase firebase-realtime-database

我正在使用Firebase实时数据库进行聊天应用。

我做了

public class MessageAdapter extends BaseAdapter implements ChildEventListener{
    ...
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    Message msg = dataSnapshot.getValue(Message.class);
    this.addItem(msg);
    this.notifyDataSetChanged();
    }
    ...
}
将数据添加到Firebase时,

MessageAdapter刷新我的Listview

但是

@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    Message msg = dataSnapshot.getValue(Message.class);
    this.addItem(msg);
    this.notifyDataSetChanged();
}

onChildAdded每当我启动应用程序时都会调用方法。我想在用户启动应用程序后加载消息。它会加载存储在Firebase实时数据库中的每条消息。

用户启动应用程序后是否有办法只加载新邮件?此外,我想让它加载特定数量的消息,如果我将数字设置为5,当用户启动应用程序时,它只从Firebase数据库加载5条存储的消息。

1 个答案:

答案 0 :(得分:1)

好的,所以这里有几个问题,首先是让应用程序在查询数据库之前等待。为此,我建议在使用处理程序加载数据时暂停线程几秒钟。

 handler1.postDelayed(new Runnable() {

     @Override
     public void run() {
        // Your Database Reference Listener
     }
}, 1000);

也只是从firebase中听一些只是改变听众的方式

 yourDatabaseReferance.limitToFirst(10).addChildEventListener(new ChildEventListener()