java - 删除user id下的单个child,随机生成childname,android studio,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()
. 然后你可以删除那个孩子。我希望这有帮助。
推荐阅读
- xml - XML 文件中的双引号
- git - 从头创建分支并从先前的提交提交
- reactjs - 如何将访问方法 dispatch() 获取到类的组件中
- javascript - 从 vue 获取文件输入并推送到 Python 代码
- ubuntu - 如何使用 gstreamer 保存带有编码 MPEG4-GENERIC 的 rtsp 音频流
- git - 从 NetBeans IDE 中删除远程 git 标记
- java - 如何在警报对话框中显示选定复选框的列表?
- typescript - OfficeJS 方法回调中的此上下文丢失并且 asyncResult.context 未定义
- flutter - 如何在 Flutter 中使用底部导航项切换 TabBar 的可见性
- python - Django - 网址相互附加