2016-11-15 51 views
0

我正在使用Firebase实时数据库创建聊天应用程序。是否可以在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(); 
    } 
    ... 
} 

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

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

handler1.postDelayed(new Runnable() { 

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

还听取只能从火力几只是改变监听器,如下

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

谢谢!它的工作greeat – MWP

+0

如果我喜欢yourDatabaseReferance.limitToFirst(10).addChildEventListener(this)它不会加载任何更多后初始化..我怎么能限制10消息,然后添加? – MWP

+0

哦,我的坏,我用limitToLast(10) – MWP

相关问题