如何从firebase实时数据库中删除?

时间:2016-05-23 12:19:18

标签: android firebase firebase-realtime-database

我在Android应用中使用Firebase实时数据库,并且拥有以下数据: enter image description here

如何删除记录" Apple" (标记在图片中)?

根据文档,要删除您在引用上调用 removeValue()的项目。但要获得参考,我需要孩子 id 。因为它是一个随机生成的id( -KISNx87aYigsH3ILp0D ),如何删除它?

6 个答案:

答案 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);

Firebase Save Data 3.0

答案 3 :(得分:0)

如果您使用的是firebase-admin,则可以直接尝试使用

admin.ref(`/users/${userid}`).remove()

这对我有用。

还要记住要使用asyncawait语法。

答案 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 数据库中的数据