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

新手上路,请多包涵

我在 Android 应用程序中使用 Firebase 实时数据库,并且有这样的数据: 在此处输入图像描述

如何删除记录“Apple” (如图所示)?

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

原文由 Amit Jayant 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 441
2 个回答

如果您不知道要删除的项目的键,您首先需要查询数据库以确定这些键:

 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());
    }
});

原文由 Frank van Puffelen 发布,翻译遵循 CC BY-SA 3.0 许可协议

在使用 python 的 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()

原文由 masaya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题