如何通过查询从Firebase存储Android中删除图像



我正在创建一个名为"删除我的帐户"的方法,并删除我创建一些查询的所有用户内容。

这是数据库情况: https://i.stack.imgur.com/eauyh.jpg

您可以看到此用户发布了一本具有自己图像的书,猜测用户发布了更多书籍,我如何删除用户发布的所有书籍图像?

这是我要删除的代码:

private DatabaseReference mUserBook;
private Query user_book;
mUserBook = FirebaseDatabase.getInstance().getReference("Books");
user_book = mUserBook.orderByChild("uid").equalTo(currentUid);
user_book.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.getValue() != null){
                for(DataSnapshot book_Snap : dataSnapshot.getChildren()){
                    book_Snap.getRef().removeValue();
                }
            }

以这种方式,它将删除所有数据,但如果他在这种情况下发布了更多书籍,则不能解决该书的图像,我该如何解决?

问题是您删除了整本书。尝试使用book_Snap.getRef().child('image').removeValue();。这样,它只会删除图像孩子。

编辑:

要从存储中删除本书本身,我建议您使用云功能。删除书的听众看起来像这样:

// Listens on removing a book
exports.removeBookImageFromStorage = functions.database.ref('/Books/{bookId}/image/').onDelete(event => {
    // Remove image from the Storage - you can get the imageUrl or the bookId from the event variable
});`

相关内容

  • 没有找到相关文章

最新更新