使用Firebase数据库喜欢/不喜欢系统



我想创建两个按钮,一个按钮,另一个是不喜欢的。

我写这篇文章:

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) {
        }

这对于一个按钮来说是有用的,如果用户单击"喜欢"按钮,然后不喜欢按钮,从数据库中删除了类似按钮,反之亦然?谢谢。

为您的按钮实现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) {
            }

最新更新