如何从 firebase 实时数据库中删除?
How to delete from firebase realtime database?
我在 Android 应用程序中使用 Firebase 实时数据库,并且有这样的数据:
如何删除记录"Apple"(图中有标注)?
根据文档,要删除一个项目,您可以在参考上调用 removeValue()。但是要获得参考,我需要 child id。因为是随机生成的id(-KISNx87aYigsH3ILp0D),怎么删除呢?
根据您删除数据的方式和原因,您可以使用这些:
// 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);
如果您不知道要删除的项目的键,您首先需要查询数据库以确定这些键:
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();
如果您正在使用 firebase-admin,您可以简单地尝试一下
admin.ref(`/users/${userid}`).remove()
这对我有用。
还要记住使用 async
和 await
语法。
您可以使用此代码:
onDeletePost(id:string){
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/${id}.json`).subscribe();
}
假设 images 是您要清除的 firebase 数据库的目录。
private static DatabaseReference mDatabase;
public static void clearData(){
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").setValue(null);
}
这里images是数据库的父目录。如果要清除images目录中的嵌套目录(DCIM),以便保留其中的剩余数据。
在那种情况下你可以这样做,
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);
作为对查询的回应,请尝试使用空值setValue(null)
的setValue方法来清除firebase数据库中的数据
我在 Android 应用程序中使用 Firebase 实时数据库,并且有这样的数据:
如何删除记录"Apple"(图中有标注)?
根据文档,要删除一个项目,您可以在参考上调用 removeValue()。但是要获得参考,我需要 child id。因为是随机生成的id(-KISNx87aYigsH3ILp0D),怎么删除呢?
根据您删除数据的方式和原因,您可以使用这些:
// 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);
如果您不知道要删除的项目的键,您首先需要查询数据库以确定这些键:
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();
如果您正在使用 firebase-admin,您可以简单地尝试一下
admin.ref(`/users/${userid}`).remove()
这对我有用。
还要记住使用 async
和 await
语法。
您可以使用此代码:
onDeletePost(id:string){
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/${id}.json`).subscribe();
}
假设 images 是您要清除的 firebase 数据库的目录。
private static DatabaseReference mDatabase;
public static void clearData(){
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").setValue(null);
}
这里images是数据库的父目录。如果要清除images目录中的嵌套目录(DCIM),以便保留其中的剩余数据。
在那种情况下你可以这样做,
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);
作为对查询的回应,请尝试使用空值setValue(null)
的setValue方法来清除firebase数据库中的数据