簡體   English   中英

如何從Firebase中刪除一個子節點而不刪除所有子節點

[英]How to Remove one child node from firebase with out deleting all child nodes

我需要在單擊按鈕時從Firebase中刪除一個子節點,但是當我使用.RemoveValue()時,它會刪除所有的子節點,而不僅僅是一個。

 LeaderClass leader = new LeaderClass((uploadCurrent.getName()).trim(),
                        (uploadCurrent.getCategory()).trim(),(Integer.toString(mCountLikes )));
                mDatabaseLike.removeValue();

完整的代碼如下:

    //Count Likes functionality
    mDatabaseRef.child((uploadCurrent.getName())).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists())
            {
                //Counting likes in 'Likes' database by counting children
                mCountLikes = (int) dataSnapshot.getChildrenCount();
                holder.mCountbtn.setText(Integer.toString(mCountLikes ) + " Likes" );


               LeaderClass leader = new LeaderClass((uploadCurrent.getName()).trim(),
                     (uploadCurrent.getCategory()).trim(),(Integer.toString(mCountLikes )));

              mDatabaseLike.push().setValue(leader);




            }
            else{
                holder.mCountbtn.setText("0 Likes");

                LeaderClass leader = new LeaderClass((uploadCurrent.getName()).trim(),
                        (uploadCurrent.getCategory()).trim(),(Integer.toString(mCountLikes )));
                mDatabaseLike.removeValue();


            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

這是我的firebase結構:

CountLikes: {
   "-LXBQRbkiL3fZUnRedrB": {
      category: "Technology"
      name: "Project 467"
      vote: "1"
   }

DatabaseReference上調用removeValue ,Firebase會刪除該引用處的所有數據。 看起來您的mDatabaseLike指向CountLikes ,因此調用mDatabaseLike.removeValue()會刪除該位置下的所有數據。

要刪除單個子節點,您需要知道要刪除的類似鍵,即您共享的JSON中的-LXBQRbkiL3fZUnRedrB

當您知道這一點時,僅刪除一個子節點就很簡單:

mDatabaseLike.child("-LXBQRbkiL3fZUnRedrB").removeValue();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM