2017-04-03 51 views
0

我想通過在每次添加新列表時刪除列表中最早的子項來限制我的Firebase應用程序中的數據量。我搜索了一個JavaScript版本的答案,我想有Android版本的答案。如何刪除Firebase Android中最早的孩子?

這裏是我的數據結構:

"team" : { 
     "-KgoZM4NrImLNWVaUWks" : { 
      "player_name" : "A", 
      "timeStamp" : "1491235598092" 
     }, 
     "-Kgo_2AkcqzoFr78lUUI" : { 
      "player_name" : "B", 
      "timeStamp" : "1491235778718" 
     } 
    } 

我知道如何查詢歷史最悠久的節點,但我應該怎麼做才能刪除的節點?

Query find_old_node_query = mDatabase.child("team").orderByChild("timeStamp").limitToLast(1); 

回答

0

請使用查詢: Query find_old_node_query = mDatabase.child("team").orderByChild("timeStamp").equalsTo(teamId);

哪裏teamId是當你使用push()方法添加的團隊,導致關鍵。 希望它有幫助!

0

您可以刪除節點獲取節點的推鍵在回調後

mDatabase.child("team").orderByChild("timeStamp").limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
        mDatabase.child("team").child(dataSnapshot.getKey()).removeValue(); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     });