我正在使用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条存储的消息。
答案 0 :(得分:1)
好的,所以这里有几个问题,首先是让应用程序在查询数据库之前等待。为此,我建议在使用处理程序加载数据时暂停线程几秒钟。
handler1.postDelayed(new Runnable() {
@Override
public void run() {
// Your Database Reference Listener
}
}, 1000);
也只是从firebase中听一些只是改变听众的方式
yourDatabaseReferance.limitToFirst(10).addChildEventListener(new ChildEventListener()