【发布时间】:2018-01-25 22:14:59
【问题描述】:
在创建聊天应用程序时,我正在使用 Firebase。 它工作得很好,每次我从 Firebase 获取整个数据列表时,当向其中添加或删除新项目时,我只会遇到一个问题。
我想要的是,只有新添加的记录应该来自 Firebase,而不是整个数据列表。
请检查我下面的代码
ArrayList<ChatMessage> MY_ARRAYLIST= new ArrayList<>();
MsgViewHolder viewModel = ViewModelProviders.of(this).get(MsgViewHolder.class);
LiveData<DataSnapshot> liveData = viewModel.getDataSnapshotLiveData();
liveData.observe(this, dataSnapshot -> {
if (dataSnapshot != null) {
MY_ARRAYLIST.clear(); // I NEED TO CLEAR THE ARRAY-LIST TO GET THE REFRESHED DATA..I DO NOT WANT TO LOAD WHOLE LIST ON EACH TIME
if (dataSnapshot.exists())
for (DataSnapshot ds : dataSnapshot.getChildren()) {
ChatMessage bean = ds.getValue(ChatMessage.class);
assert bean != null;
MY_ARRAYLIST.add(bean);
}
}
});
在上面的代码中,我使用MY_ARRAYLIST.clear() 来清除数据,以获取新添加的记录。每次从@987654323@ ,每当添加或删除新记录时,我都会获取整个数据列表。是他们的有什么方法可以只从 Firebase 获取新添加的数据而不是整个 List?
【问题讨论】:
-
您需要做的是添加查询以获取最新添加的值,而不是整个列表
标签: android firebase firebase-realtime-database