This is my firebase database setup
我无法在UID下删除1个孩子
例如仅删除-LSRCRSq__vDRPlaH91F(这是随机生成的,因此我不确定如何引用此内容) One child under UID
使用此代码,我可以使用uidRef.removeValue();删除整个UID数据库。
可以解释一下如何引用和删除其下方的单个孩子。
非常感谢
答案 0 :(得分:0)
您可以使用dataSnapshot.getKey()
获得该随机ID。这将进入您的for循环。我建议将这些键添加到ArrayList
中。
更具体地说:
ArrayList<String> id = new ArrayList<>();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
id.add(ds.getKey().toString());
String title = ds.child("title").getValue(String.class);
String content = ds.child("content").getValue(String.class);
String timestamp = ds.child("timestamp").getValue(String.class);
list.add(title + "\n" + content + "\n" + timestamp);
Log.d("TAG", title);
}
然后,由于您要删除第一个孩子,因此可以创建一个新的DatabaseReference
,其路径包含ArrayList
中的第一个元素,然后说出databaseReference.removeValue()
以删除值在那条路。
DatabaseReference firstChild = FirebaseDatabase.getInstance().getReference("ProgressReports/" + id.get(0);
firstChild.removeValue();
这应该删除该子级上的值。基本上,一旦获得ID列表,就可以将其中一个ID附加到getReference()
中路径的末尾。然后,您可以删除该孩子。我希望这会有所帮助。