首页 > 解决方案 > 删除user id下的单个child,随机生成childname,android studio,firebase

问题描述

这是我的 Firebase 数据库设置

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

例如仅删除 -LSRCRSq__vDRPlaH91F (这是随机生成的,所以我不确定如何引用它) UID 下的一个孩子

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

有人可以解释如何引用和删除它下面的单个子项。

非常感谢

标签: javaandroidfirebasefirebase-realtime-database

解决方案


您可以做的是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(). 然后你可以删除那个孩子。我希望这有帮助。


推荐阅读