我有一个数据库,比方说300个文件链接。这些文件存储在我的存储中,如果我手动删除包含所有链接的数据库树,则文件仍在存储中,之后如果用户继续上传文件。生成链接和新文件,但我也保留旧文件。有没有办法,如果我从数据库树中删除我的文件链接,孩子们也会从存储中删除它们?
我真的在考虑这个问题,因为我认为调试从网站手动删除数据库有点麻烦,但文件仍在那里。
答案 0 :(得分:1)
假设您有一个如下所示的数据库:
Firebase-database
|
--- links
|
--- linkId1: "http://..."
|
--- linkId2: "http://..."
|
--- linkId3: "http://..."
要删除Firebase Storage
中与这些链接对应的所有文件,请使用以下代码:
StorageReference storageRef = storage.getReference();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference linksRef = rootRef.child("links");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String link = ds.getValue(String.class);
storageRef.child(link).delete();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
linksRef.addListenerForSingleValueEvent(eventListener);