删除用户id下的单个孩子,随机生成childname,android studio,firebase



这是我的firebase数据库设置

我在删除UID 下的1个孩子时遇到问题

例如,只删除-LSRCRSq__vDRPlaH91F(这是随机生成的,所以我不确定如何引用它(UID 下的一名儿童

有了这段代码,我可以用uidRef.removeValue((删除整个UID数据库;

有人能解释一下如何引用和删除它下面的一个孩子吗?

非常感谢

您可以使用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()中路径的末尾。然后你可以移除那个孩子。我希望这能有所帮助。

最新更新