我有一个RecyclerView,每次在firebase数据库中更改某些内容时都会更新。 在我的数据库中,我有"帖子"节点和里面的一些孩子,如"喜欢","评论"等等。
我的loadRecyclerView函数:
public Menu(String name) {
this.name = name;
}
我的代码工作正常,Firebase中的每次更改都会更新一切,但我希望将监听器保留在除了新帖子之外的所有内容上(我向上滚动以刷新)。 任何想法??
答案 0 :(得分:0)
之前只获得帖子需要一个在最新帖子结束的听众。像
这样的东西databaseReference.orderByKey().endAt("key of newest post").addValueEventListener(...
要确定最新帖子的密钥,您可以为最新值附加一个监听器:
databaseReference.orderByKey().limitToLast(1).addValueEventListener(...
结合起来:
databaseReference.orderByKey().limitToLast(1).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String lastKey;
for (String child: dataSnapshot.getChildren()) {
lastKey = child.getKey();
}
databaseReference.orderByKey().endAt(lastKey).addValueEventListener((new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (posts.size() > 0) {
posts.clear();
}
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Post post = ds.getValue(Post.class);
//Getting a specific user's information (nickname purposes)
posts.add(0, post);
}
adapter.notifyDataSet...