如果您不知道要删除的项的键,您需要先查询数据库来确定这些键:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query applesQuery = ref.child("firebase-test").orderByChild("title").equalTo("Apple");
applesQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren()) {
appleSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled", databaseError.toException());
}
});
这解决了我的问题
mPostReference = FirebaseDatabase.getInstance().getReference()
.child("quotes").child(mPostKey);
mPostReference.removeValue();
admin.ref(`/users/${userid}`).remove()
对我来说,那很有效。
同时,请记得使用 async
和 await
语法。
onDeletePost(id:string){
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/${id}.json`).subscribe();
}
根据您删除数据的方式和原因,可以使用以下方法:
// Could store the push key or get it after push
String newPostKey = yourDatabase.child('firebase-test').push({
something:something
}).key();
// Depends how you get to here
howYouGotHereId.parent().setValue(null);
假设images是您想要清除的Firebase数据库目录。
private static DatabaseReference mDatabase;
public static void clearData(){
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").setValue(null);
}
这里的 images 是数据库的父目录。如果您想要清除图像目录中内嵌的 DCIM 目录以便保留其中的剩余数据。
在这种情况下,您可以像这样操作,
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);
setValue(null)
从Firebase数据库中清除数据。import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
cred = credentials.Certificate("<your certificate>.json")
firebase_admin.initialize_app(cred, {'databaseURL': 'https://<your db>.firebaseio.com/'})
snapshot = db.reference('firebase-test').get()
for k,v in snapshot.items():
if v['title'] == "Apple":
db.reference('firebase-test').child(k).delete()