我想通过在每次添加新列表时删除列表中最旧的子项来限制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);
答案 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) {
}
});