Firebase如何阻止DB中的特定节点

时间:2018-01-01 13:08:04

标签: java android firebase-realtime-database android-recyclerview

我有一个RecyclerView,每次在firebase数据库中更改某些内容时都会更新。 在我的数据库中,我有"帖子"节点和里面的一些孩子,如"喜欢","评论"等等。

我的loadRecyclerView函数:

public Menu(String name) {
    this.name = name;
}

我的代码工作正常,Firebase中的每次更改都会更新一切,但我希望将监听器保留在除了新帖子之外的所有内容上(我向上滚动以刷新)。 任何想法??

1 个答案:

答案 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...