我正在我的应用程序中创建一个名为“删除我的帐户”的方法,并删除我创建了一些查询的所有用户内容。
这是数据库情况: 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();
}
}
通过这种方式,如果他在这种情况下发布了更多书籍,它将删除所有数据但不删除书籍图像,我该如何解决?
答案 0 :(得分:0)
问题在于您删除了整本书。尝试使用book_Snap.getRef().child('image').removeValue();
。这样它只会删除图像子。
编辑:
要从存储中删除图书本身,我建议您使用Cloud Functions。删除书籍的听众如下:
// 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
});`