我如何停止从Firebase数据库填充并由FirebaseRecyclerAdapter管理的RecyclerView重新创建已删除的视图?

问题描述 投票:2回答:1

问题上下文:

1)我在使用社交媒体克隆应用程序时遇到了问题,特别是在用户feed(在recyclerView内)和操纵帖子(在ViewHolder类内)方面。

2)视图是从Firebase实时数据库填充的。

3)创建“帖子”可以正常工作(所有信息均正确传递到Firebase并加载到回收站中。)

4)我可以使用以下方法从Firebase中删除帖子:

firebaseRecyclerAdapter.getRef(postsViewHolder.getAdapterPosition()).removeValue();

但是,如果我在删除先前的帖子后创建新帖子,则先前删除的帖子会同时出现在数据库和回收站中。

问题观察:

1)好像帖子的本地副本存储在数组中(我没有创建数组,因此必须有一个由数据快照或其他东西触发的默认数组)。

2)如果我能以某种方式重置此隐藏数组的索引,我相信该问题将得到解决。对于每个应用会话,recyclerView被确定为填充与当前会话中一样多的帖子。为了澄清,我可以发表一个帖子,重新加载会话,将其删除,再发表一个帖子,删除的帖子将不会再出现。

问题尝试:

我尝试使用

1) newsFeedRecycler.getRecycledViewPool().clear();
2) firebaseRecyclerAdapter.notifyItemRangeRemoved(0,firebaseRecyclerAdapter.getItemCount());
3) postsViewHolder.itemView.destroyDrawingCache();
4) newsFeedRecycler.setAdapter(firebaseRecyclerAdapter);
5) firebaseRecyclerAdapter.notifyDataSetChanged();
6) firebaseRecyclerAdapter.notifyItemRemoved(postsViewHolder.getAdapterPosition());

并且在3天的过程中尝试从本地内存以及Firebase中有效擦除已删除的帖子。

问题申诉:

我对Java还是很陌生,已经通过动手方法学到了现在的知识,因此我对问题的理解可能缺少一些东西。但是我确实知道这个问题不是重复的,因为我已经尝试了我可以在Stack Overflow上找到的甚至可以远程解决此问题的几乎所有解决方案。如果有人能帮助我理解问题所在以及解决方法,我将非常感激。干杯

问题背景:1)我在使用社交媒体克隆应用程序时遇到了问题,特别是在用户提要(在recyclerView内)和操纵帖子(在ViewHolder类内)方面。 2)视图是...

java android firebase-realtime-database android-recyclerview recycler-adapter
1个回答
0
投票

对于将来的观众,我实际上可以通过添加一个看似很小的细节来解决我的问题(我记得在另一个答案中看到的东西,但是解决了另一个问题)。最初,我的“上传帖子”方法如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.