java - 如何从 Firebase 实时数据库的推送方法中删除自动生成的项目
问题描述
我是 Firebase 的新手,在从我创建的回收站视图中删除项目时遇到问题。但我无法理解如何使用自动生成的密钥删除项目。这就是我将项目添加到数据库中的方式:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("categories");
String key = reference.push().getKey();
reference.child(key).setValue(categoryData).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(add_category.this, "Category added", Toast.LENGTH_SHORT).show();
finish();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(add_category.this, "Failed to add", Toast.LENGTH_SHORT).show();
}
});
解决方案
如您的评论,如果您想删除例如第二项,请使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference secondChildRef = rootRef.child("categories").child("-M1qUEGi0u4rX5Ju59r4");
secondChildRef.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d("TAG", "Second item deleted!");
}
}
});
因此,要删除特定项目,您需要知道其 ID,以便将其添加到参考中。
推荐阅读
- c# - Visual Studio,想从 system.net.websockets .net 框架中添加参考程序集 websocket
- php - 更新用户
- c++ - 从屏幕小键盘上获取输入时激活特定的 LineEdit
- android - Android 聊天和 web.API
- sed - gnu sed 在模式匹配后删除部分行与特殊字符
- java - 文件可用后立即运行 Spring Batch Job
- c++ - 检查 boost::interprocess::shared_memory_object 是否为空?
- python-3.x - 初始化不同大小的数组的numpy数组
- python - Python:为 Python 2 和 Python 3 安装 VirtualEnv
- python - 使用python的离散对数