我在Android应用中使用Firebase实时数据库,并且拥有以下数据:
如何删除记录" Apple" (标记在图片中)?
根据文档,要删除您在引用上调用 removeValue()的项目。但要获得参考,我需要孩子 id 。因为它是一个随机生成的id( -KISNx87aYigsH3ILp0D ),如何删除它?
答案 0 :(得分:48)
如果您不知道要删除的项的键,首先需要查询数据库以确定这些键:
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());
}
});
答案 1 :(得分:3)
这解决了我的问题
mPostReference = FirebaseDatabase.getInstance().getReference()
.child("quotes").child(mPostKey);
mPostReference.removeValue();
答案 2 :(得分:2)
根据删除数据的方式和原因,您可以使用以下内容:
// 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);
答案 3 :(得分:0)
如果您使用的是firebase-admin,则可以直接尝试使用
admin.ref(`/users/${userid}`).remove()
这对我有用。
还要记住要使用async
和await
语法。
答案 4 :(得分:0)
您可以使用以下代码:
onDeletePost(id:string){
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/${id}.json`).subscribe();
}
答案 5 :(得分:0)
假设图像是您要清除的 firebase 数据库的目录。
SELECT * FROM "md_menu" where "place"='1' AND "adminid"='1' ORDER BY "order" ASC
这里的images是数据库的父目录。如果要清除图像目录中的嵌套目录 (DCIM),以便保留其中的剩余数据。
在那种情况下,你可以这样做,
private static DatabaseReference mDatabase;
public static void clearData(){
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").setValue(null);
}
作为对查询的响应,请尝试使用空值 mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);
的 setValue 方法清除 firebase 数据库中的数据