我正在开发一项活动,显示所关注的用户的帖子。为此,我将查询设置为指向用户的关注,并通过将其插入到 onBindViewHolder 上的卡片视图上来获取信息:
FirestoreRecyclerOptions<GetInfoPost> options
= new FirestoreRecyclerOptions.Builder<GetInfoPost>()
.setQuery(FirebaseFirestore.getInstance().collection("following").document(fAuth.getCurrentUser().getUid()).collection("/userFollowing").limit(1000), GetInfoPost.class)
.build();
FirestoreRecyclerAdapter<GetInfoPost, FindFriendsViewHolder> firestoreRecyclerAdapter
=new FirestoreRecyclerAdapter<GetInfoPost, FindFriendsViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull FindFriendsViewHolder findFriendsViewHolder, int i, @NonNull GetInfoPost getInfoPost) {
final String listUserId = getSnapshots().getSnapshot(i).getId();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query userPostsRef = rootRef.collection("post").document(listUserId).collection("userPosts").limit(1);
userPostsRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
String postID = "";
for (QueryDocumentSnapshot document : task.getResult()) {
//Toast.makeText(MainActivity.this, document.getId() + "", Toast.LENGTH_SHORT).show();
postID = document.getId();
}
String finalPostID = postID;
if(finalPostID.equals("")){
return;
}
FirebaseFirestore.getInstance().collection("likes").document(finalPostID).collection("postLikes").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()){
int count = 0;
for (DocumentSnapshot document : task.getResult()) {
count++;
}
Log.d("TAG", count + "");
findFriendsViewHolder.txtLikenmb.setText(count + "");
}
}
});
一切似乎都正常,除了当关注你的用户(或更多用户)没有帖子时,recyclerview 仍然创建一个项目,为了不使应用程序崩溃,我这样做了:
if(finalPostID.equals("")){
return;
}
但我不想显示那个空帖子:
那么有没有办法从recyclerview中删除一个项目呢?
(我尝试查看类似的问题,但他们都使用了数组列表或其他东西,所以他们没有帮助我)
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)