如何删除Firebase Android中最老的孩子?

时间:2017-04-03 16:44:11

标签: android firebase firebase-realtime-database

我想通过在每次添加新列表时删除列表中最旧的子项来限制Firebase应用中的数据量。我搜索了一个JavaScript版本的答案,我想有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);

2 个答案:

答案 0 :(得分:0)

请使用此查询:     Query find_old_node_query = mDatabase.child("team").orderByChild("timeStamp").equalsTo(teamId);

teamId是使用push()方法添加团队时产生的关键字。 希望它有所帮助!

答案 1 :(得分: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) {

            }
        });