- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我想从 Firebase 存储中删除一个条目以及从 Firebase 数据库中删除元数据。然后我应该像这样彼此独立地删除它们吗:
@Override
public void onDeleteClick(int position) {
Upload selectedItem = mUploads.get(position);
String selectedKey = selectedItem.getKey();
StorageReference imageRef = FirebaseStorage.getInstance().getReferenceFromUrl(selectedItem.getImageUrl());
imageRef.delete();
mDatabaseRef.child(selectedKey).removeValue();
}
还是把数据库删除部分放在存储删除方法的onSuccessListener中?
@Override
public void onDeleteClick(int position) {
Upload selectedItem = mUploads.get(position);
final String selectedKey = selectedItem.getKey();
StorageReference imageRef = FirebaseStorage.getInstance().getReferenceFromUrl(selectedItem.getImageUrl());
imageRef.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
mDatabaseRef.child(selectedKey).removeValue();
}
});
mDatabaseRef.child(selectedKey).removeValue();
}
最佳答案
每当您需要删除一个项目和跨多个服务的引用时,您就有可能一个操作完成而另一个操作失败。这将导致数据损坏,因此您需要弄清楚什么对您的应用危害最小:
如果孤立图像对您的应用危害较小,请先删除数据库节点,然后在完成处理程序中删除图像。这是我的首选,因为我的客户端应用程序代码不需要对孤立图像进行任何特殊处理。
如果数据库中有一个悬垂引用危害最小,请先删除该文件,然后按照 Peter 的回答更新数据库。
无论您选择哪个选项,您通常都希望定期运行一个维护过程来清理数据库中的悬空引用和/或存储中的孤立文件。
关于java - Firebase:从存储和数据库中删除时,存储删除应该在存储删除的 onSuccessListener 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48527169/
在 Firebase 中,当应用程序处于在线模式时,将调用 addOnSuccessListener 方法。但它在离线模式下不会被调用。以下是我的代码: mFirebaseDatabase.setVa
所以我断开了互联网连接并测试了我的应用程序。当我向数据库添加内容时,我会使用默认的 OnSuccessListener 检查它是否已成功添加。但是,即使我的应用程序处于飞行模式或没有互联网连接,OnS
public class MainActivity extends AppCompatActivity { private static final String TAG = "100";
假设我想从 Firebase 存储中删除一个条目以及从 Firebase 数据库中删除元数据。然后我应该像这样彼此独立地删除它们吗: @Override public void onDeleteCli
通过 Firebase 存储上传文件时,不会调用 onSuccess 方法。 我目前正在运行带有“com.google.firebase:firebase-storage:10.2.6”的 Andro
在我的 android 应用程序中,我正在尝试添加依赖项 implementation 'com.google.android.gms:play-services-tasks:16.0.1 并导入 i
下面是代码。我在编码方面没有太多经验。希望你能帮助我!非常感谢=) 我的错误是: error: incompatible types: > cannot be converted to OnCompl
我是一名优秀的程序员,十分优秀!