我想创建两个按钮,一个用于喜欢,另一个用于不喜欢。
我写这个:
mDatabaseLikeReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (clickLike) {
if (dataSnapshot.hasChild(mFirebaseUser.getUid())) {
mDatabaseRateMinsReference.child(mFirebaseUser.getUid()).removeValue();
clickLike= false;
} else {
mDatabaseRateMinsReference.child(mFirebaseUser.getUid()).setValue(mFirebaseUser.getDisplayName());
clickLike= false;
}
} } @Override
public void onCancelled(DatabaseError databaseError) {
}
这是一个按钮的工作,如果用户点击像按钮,然后不喜欢按钮,如何从数据库中删除,反之亦然?谢谢。
答案 0 :(得分:0)
为您的按钮实施onClickListener
,并在onClick(View view)
执行此操作:
// based on what button clicked, you can also check if button is enabled.
if(view.getid()== R.id.unlikeButton){
mDatabaseLikeReference.removeValue();
}
else if (view.getid()== R.id.likedButton)
mDatabaseLikeReference.setValue(mFirebaseUser.getDisplayName());
然后在您的数据库值事件侦听器中:
mDatabaseLikeReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
mDatabaseRateMinsReference
.child(mFirebaseUser.getUid())
.setValue(mFirebaseUser.getDisplayName());
likedbutton.setVisibility(VISIBLE);
unlikebutton.setVisibility(GONE);
}
else{
mDatabaseRateMinsReference
.child(mFirebaseUser.getUid())
.removeValue();
// enable/disable or change visibility or change color
likedbutton.setVisibility(GONE);
unlikebutton.setVisibility(VISIBLE);
}
} @Override
public void onCancelled(DatabaseError databaseError) {
}