我製作了簡單的「發佈博客」應用程序,用戶可以在其中發佈特定帖子。 所有的帖子都顯示在FirebaseRecyclerAdapter
,他們工作得很好。 但是我想過濾帖子,使其僅顯示當前用戶帖子。Android Firebase按用戶篩選ID
我已經定義了查詢按用戶ID進行過濾,但由於某種原因,它不起作用,因爲它仍然顯示所有用戶的帖子。
userAuth = FirebaseAuth.getInstance();
mCurrentUser = userAuth.getCurrentUser();
AuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() == null) {
Intent loginIntent = new Intent(MainActivity.this, LogInActivity.class);
loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(loginIntent);
}
}
};
myDatabase = FirebaseDatabase.getInstance().getReference().child("HelpPosts");
DatabaseOfUsers = FirebaseDatabase.getInstance().getReference().child("Users");
//make a filter for post
userId = userAuth.getCurrentUser().getUid();
CurrentUser = FirebaseDatabase.getInstance().getReference().child("HelpPosts");
mQuerryCurrentUser = CurrentUser.orderByChild("uid").equalTo(userId);
@Override
protected void onStart() {
super.onStart();
userAuth.addAuthStateListener(AuthListener);
FirebaseRecyclerAdapter<Post,PostViewHolder>firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>
(Post.class,
R.layout.post_row,
PostViewHolder.class,
CurrentUser) {
@Override
protected void populateViewHolder(PostViewHolder viewHolder, Post model, final int position) {
final String post_key = getRef(position).getKey();
viewHolder.setTitle(model.getTitle());
viewHolder.setDesc(model.getDesc());
viewHolder.setTnumber(model.getPhone());
viewHolder.setUsername(model.getUsername());
viewHolder.myView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent singleView = new Intent(MainActivity.this,PostView.class);
singleView.putExtra("post_id",post_key);
startActivity(singleView);
}
});
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
火力地堡數據
"HelpPosts" : {
"-Kg9elNpSVKA1EY6Fh6X" : {
"Address" : "test",
"Desc" : "test",
"Phone" : "5555",
"Title" : "test1",
"uid" : "FuOOyBOVtDaqrY4mgpquH935HSV2",
"username" : "marius"
},
"-Kg9euxfW9ivRq80NwV3" : {
"Address" : "test",
"Desc" : "test",
"Phone" : "2222",
"Title" : "test2",
"uid" : "FuOOyBOVtDaqrY4mgpquH935HSV2",
"username" : "marius"
},
"-Kg9fIrq-hmUucb_R1b7" : {
"Address" : "test",
"Desc" : "test",
"Phone" : "2222",
"Title" : "test3",
"uid" : "MgADOIrKbPQGo7pkfJzzCJAMwOk1",
"username" : "mario"
}
}
謝謝,它的工作:) – MariusBrave