我有一个回收站视图,其中每个帖子都有一个删除选项。仅当用户是该特定帖子的所有者或应禁用删除选项时,才应启用删除选项。我正在使用firebase身份验证来检查用户是否是所有者。我面临的问题是即使用户是帖子的所有者,她也无法使用删除选项,因为它被禁用。我不确定问题所在,但我认为它无法获取用户ID。以下是我的代码。
databaseReference= FirebaseDatabase.getInstance().getReference().child(savedCollname).child(node);
final FirebaseRecyclerAdapter<MainBlogView, MainView.MainViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<MainBlogView, MainView.MainViewHolder>(
MainBlogView.class, R.layout.recyclerplace, MainView.MainViewHolder.class, databaseReference
) {
mAuth=FirebaseAuth.getInstance();
firebaseUser=mAuth.getCurrentUser();
String userId=firebaseUser.getUid();
PopupMenu popup = new PopupMenu(ctx1, viewHolder.buttonViewOption);
MenuInflater inflater = popup.getMenuInflater();
final Menu pop = popup.getMenu();
databaseReference.child(post_key).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String user_id = (String) dataSnapshot.child("uid").getValue();
if (firebaseUser.getUid().equals(user_id)) {
pop.findItem(R.id.delete).setEnabled(true);
} else {
pop.findItem(R.id.delete).setEnabled(false);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
以下是json树:
{
"AlertPost" : {
"-L2Zrn-UM1BD0CDh4yFN" : {
"description" : "fhjhg",
"image" : "https://firebasestorage.googleapis.com/v0/b/notefi-86d18.appspot.com/o/Alert_Image%2Fcropped1486185224.jpg?alt=media&token=61520d4a-5f3b-458d-bf1d-98c1f337a369",
"timestamp" : 1515668320717,
"uid" : "qrnu8UaYAsPJjFhHryiYjnbVgu93"
}}