在用户ID,随机生成的子名称,Android Studio,Firebase下删除单个子

时间:2018-11-28 21:48:03

标签: java android firebase firebase-realtime-database

This is my firebase database setup

我无法在UID下删除1个孩子

例如仅删除-LSRCRSq__vDRPlaH91F(这是随机生成的,因此我不确定如何引用此内容) One child under UID

使用此代码,我可以使用uidRef.removeValue();删除整个UID数据库。

可以解释一下如何引用和删除其下方的单个孩子。

非常感谢

1 个答案:

答案 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()中路径的末尾。然后,您可以删除该孩子。我希望这会有所帮助。