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