java - 删除用户id下的单个 child ,随机生成的 child 名,android studio,firebase

标签 java android firebase firebase-realtime-database

This is my firebase database setup

我无法删除 UID 下的 1 个 child

例如只删除 -LSRCRSq__vDRPlaH91F(这是随机生成的,所以我不确定如何引用它) One child under UID

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

有人能解释一下如何引用和删除它下面的单个 child 吗。

非常感谢

最佳答案

您可以做的是使用 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();

这应该删除那个 child 的值。基本上,一旦获得 ID 列表,就可以将其中一个 ID 附加到 getReference() 中路径的末尾。然后你可以删除那个 child 。我希望这会有所帮助。

关于java - 删除用户id下的单个 child ,随机生成的 child 名,android studio,firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53528631/

相关文章:

java - Android - 隐藏/删除边距以及隐藏 RecyclerView 项目

android - 如何隐藏布局下的按钮

android - 使用 Android Paging 3 库时如何显示空 View

ios - 使用 Firebase for iOS 获取大量警告/日志消息

Firebase Firestore。 "Cost"onSnapshot

java - 检查页面中是否存在元素的函数

java - 具有并行线程的 TestNG Selenium

java - 尝试更新到最新 FirebaseUI 时 list 合并失败

java - Java 中比较器接口(interface)的构造函数

android - Android Studio中如何对模块进行分组