【发布时间】:2021-02-17 19:58:43
【问题描述】:
在我的项目中,我希望用户能够点击他们选择的类别,一旦点击它就会将他们带到一个页面,他们将看到属于他们选择的那个类别的所有帖子。例如,如果他们为自己的类别选择爱,那么它将显示属于爱类别的所有帖子。我正在尝试我想到的这段代码,但我认为它不是正确的方法。我确实运行了我的代码,但没有收到任何错误,但也没有得到任何结果。我很迷失在这里。有人能帮我吗?我会告诉你我的代码提前谢谢
databaseReference = FirebaseDatabase.getInstance().getReference().child("posts");
Intent intent1 = getIntent();
intent1.getStringExtra("name");
String c=intent1.toString();
databaseReference.equalTo(c).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
myUploads.clear();
DialogUtil.closeProgressDialog();
for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
for (DataSnapshot postsnapshot : userSnapshot.getChildren()) {
Model_Information upload=postsnapshot.getValue(Model_Information.class);
myUploads.add(upload);
recyclerView.invalidate();
}
}
linearLayoutWithoutItems.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
aAdapter.notifyDataSetChanged();
}else{
DialogUtil.closeProgressDialog();
linearLayoutWithoutItems.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(Explore_For_Categories.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();
}
});
//This is the firebase json
{
"Posts" : {
"2WO5Gyk17LTzoifYdDBnBFmzYOV2" : {
"-MThtE88y20_skyy0kk3" : {
"category" : "love",
"clicks" : 0,
"created" : "2-17-2021",
"body" : "Love is powerful",
"id" : "-MThtE88y20_skyy0kk3",
"mImageUrl" : "https://firebasestorage.googleapis.com/v0/b/flute-43191.appspot.com/o/.jpg?alt=media&token=2efcc398-d299-460c-9a16-4bf2e10d36f4",
"main_id" : "-MThtE88y20_skyy0kk3",
"time" : "10:49 AM",
"timestamp" : 1613530198742,
"views" : 0,
}
【问题讨论】:
-
您能否从 firebase 获得“爱”类别的结果?
-
@akhilnair 不,我没有得到任何结果
-
我想您需要检查带有“love”的帖子在火力库中的相关性。可能是通过“main_id”。
-
是的,但我如何从 Main_id 获取
-
您的代码缺少很多行,请发布完整的代码,如数据库参考初始化