我在应用上工作,我想知道在从存储中删除文件时,是否可以在使用此应用的所有设备上删除从Firebase存储或Google云下载的文件。
由于
答案 0 :(得分:0)
是的,这是可能的,但您必须存储从内部存储中提取的uri图像。此外,如果你想在背景中删除图像,你必须编写一个云功能。它必须获取令牌ID以及用户的uid。
答案 1 :(得分:0)
我现在看到我的问题不完整。
我使用FirebaseRecyclerAdapter显示数据列表,在数据中,您有时可以将名称保存在Firebase存储中。所以我在适配器中覆盖了onChildChanged方法,当从数据库中删除子节点时,在设备上的指定文件夹中搜索音频文件,如果存在则删除。该文件也会通过Firebase功能在Firebase存储中删除。
我现在正在旅行,当我回来时,我会编辑问题和你的答案。
答案 2 :(得分:0)
要解决我的问题,我已经像这样重写了FirebaseRecyclerAdapter的onChildChanged方法:
public class MyFragment extends Fragment {
private static final String TAG = MyFragment.class.getSimpleName();
private FirebaseRecyclerAdapter<Entry, EntryViewHolder> mAdapter = null;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
// Setup adapter
FirebaseRecyclerOptions<Entry> options = new FirebaseRecyclerOptions.Builder<Entry>()
.setQuery(query, Entry.class)
.build();
// Setup adapter
mAdapter = new FirebaseRecyclerAdapter<Entry, EntryViewHolder>(options) {
@Override
public EntryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
...
return view;
}
@Override
protected void onBindViewHolder(@NonNull final EntryViewHolder viewHolder, int position, @NonNull final Entry model) {
// Fill view holder
...
}
@Override
public void onChildChanged(@NonNull ChangeEventType type, @NonNull DataSnapshot snapshot, int newIndex, int oldIndex) {
super.onChildChanged(type, snapshot, newIndex, oldIndex);
// If child is removed, deleted its associated file on device if exists
if (type.equals(ChangeEventType.REMOVED)) {
// Get file name from delete entry
final String fileName = (String) snapshot.child("fileName").getValue();
// Check in file exists in local, then delete it
File file = new File(getActivity().getFilesDir() + "/" + fileName);
if (file.exists()) {
file.delete();
}
}
}
};
// Setup recycler view
mRecyclerView.setAdapter(mAdapter);
return view;
}
}
当从实时数据库中删除条目时,我使用Firebase函数删除文件。因此,该文件会在云和设备上被删除(如果已经在设备上下载了该文件)。