我正在创建一个名为"删除我的帐户"的方法,并删除我创建一些查询的所有用户内容。
这是数据库情况: 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
});`