问题描述
谢谢
大家好,我解释一下,我有2个收藏集。
1个帖子
2个用户
在“用户”集合中,我还有另一个收藏夹
我要创建的是“收藏夹”选项卡,用户可以在其中单击典型的心脏按钮,并将他添加到收藏夹的帖子添加到收藏夹。
发生的事情是,通过单击“收藏夹”按钮,帖子的文档ID被存储给用户。那已经被编程了。我不知道如何使用存储在收藏夹集合中的数据,如何在“帖子”集合中进行过滤,并仅在该选项卡中向用户显示用户已添加到收藏夹的帖子。
我有以下代码来携带收藏夹数据。
myRef.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful())
{
List<String> list = new ArrayList<>();
for (QueryDocumentSnapshot documentSnapshot : Objects.requireNonNull(task.getResult())){
list.add(documentSnapshot.getId());
System.out.println("Rew es: "+ list.toString());
通过以下代码,我收到了用户保存的整个集合的列表,详细信息是我不知道如何在查询中使用它来向我显示信息。
Query query = mFirestore.collection("Post")
;
FirestoreRecyclerOptions<activos> options = new FirestoreRecyclerOptions.Builder<activos>()
.setQuery(query,activos.class).build();
我不确定是否需要引入整个收藏夹,或者是否可以逐项收集。我真的被卡在这里了。
我也不知道这是否是实现收藏夹标签的最佳方法。
作为一个奇怪的事实,我将“收藏夹”文档的ID,已保存的帖子的ID放置在其中,并在另存为“收藏夹ID”的字段中放置了POST的ID。
>在此先感谢您的帮助,我留下了完整的代码供您检查
您认为这是进行“收藏夹”活动的最佳方法吗?
或有其他建议...
解决方法
mRef.orderByChild("idFromFireBase").equalTo("idLike").addValueEventListener(new ValueEventListener() {list.clear;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {for (DataSnapshot datas : dataSnapshot.getChildren()) {
list.add(datas.getValue(Favorite.class);
}
Toast.makeText(this,keys,Toast.LENGTH_LONG).show(); //Should work!!
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});