2017-08-29 152 views
0

我想創建兩個按鈕,一個用於喜歡,另一個用於不喜歡。喜歡/不喜歡使用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) { 

     } 

這是一個按鈕的工作,怎麼辦,如果用戶點擊喜歡按鈕,然後不喜歡按鈕,類似從數據庫中刪除,反之亦然?謝謝。

回答

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

      } 
+0

不工作,也像我說有兩個Button。謝謝你。 – Mohammed

+0

我想要的功能喜歡youtube按鈕喜歡和其他不喜歡 – Mohammed

+0

請查看編輯的變化,它現在將工作在兩個按鈕 –