如何从 Firebase 数据库中删除所有数据?

How to remove all data from a Firebase database?

我开始使用使用 Firebase 实时数据库的代码。我将它实施到我的解决方案中。连接和控制非常完美,所以我把它用于生产环境。

一段时间后,我进行了升级,我需要再次删除所有数据 - 但是等等,console 中的最高根级别不再有删除按钮,并且一次只允许在一个选定的项目中使用:

https://console.firebase.google.com/project/{{project_name}}/database/data

在上次更新中只显示了这条消息,没有接下来的步骤:

Read-only & non-realtime mode activated to improve browser performance Select a key with fewer records to edit or view in realtime

问如何一次删除所有数据?

为什么缺少 Firebase 删除按钮?

Alvin 来自 Firebase Support :

Record or node has too much data, which makes the data viewer switch to a read-only/non real time mode to increase the browser's performance.


从命令行删除 Firebase 中的所有数据

Firebase 文档显示 Removing Data - 只是它们没有显示如何删除所有数据。

要删除所有数据,您可以在该节点级别使用 REST command - which remove whole JSON 输出

curl -X DELETE "https://{{project_id}}.firebaseio.com/.json"

因此您可以通过添加 JSON 扩展名

在每个生成的“控制台中的 URL 节点”上执行此操作
https://{{project_id}}.firebaseio.com/{{path}}/{{path}}/{{path}}/.json

您可以手动创建一个包含单个空条目的 JSON 文件并导入它,这将删除所有现有条目。

您可以通过编程方式实现一种方法,将一组空数据放在数据库的主根上 - 具体来说,您可以插入一个空值。

在我的 Android 项目中它看起来像这样:

void removeDataFromDatabase(){
    DatabaseReference root = FirebaseDatabase.getInstance().getReference();
    root.setValue(null);
}

从 firebase 数据库中删除所有数据的一种简单方法是使用 Firebase CLI.

设置 CLI 后,您只需使用此命令即可删除您的数据:

firebase database:remove /

解决方案一:控制台 在您的项目中,单击数据库顶层的 x 按钮。

然后点击delete

解决方案 2:程序化

无论您使用何种语言,都可以这样调用:

database.set('/', null)

解决方案 3:Firebase CLI 从您的项目文件夹(您已经安装了 firebase-tools)在终端中写入以下内容然后点击 Enter :

database:remove /    

N.B:

Kindly consider to backup your data first.

我用过

curl -X DELETE "https://<prject name>.firebaseio.com/.json?auth=<Firebase Database secret>"

这也会删除数据库,其中包含被 firebase UI 阻止的数据。希望这可以帮助。谢谢

仅供参考:

Your get Web API key is in https://console.firebase.google.com/project/<database name>/settings/serviceaccounts/databasesecrets

否则你可以去 项目概览设置 >> 项目设置 >> 服务帐户 >> 数据库机密

我也想在评论部分对其进行评论,但由于缺少 Whosebug 点,我将其写为答案

已爱 :

public void removeDataFromFirebaseDatabae(){
FirebaseDatabase.getInstance().getRefrence().child("what you will remove").addChildEventListener(new onChildListener(){
@override
public void onChildAdded(DataSnapshot dp,String str){
for(DataSnapshot dx : dp.getChildren()){
dx.getRef().removeValue().addOnSuccessListener(new onSuccessListener<Void>(){
@override
public void onSuccess(Void pvoid){
Toast.makeText(this,"remove success",5000).show();
}});
}}});
}

此代码有助于逐一删除 firebase 实时数据库中的对象。 按路径名称对象删除所有子对象。

FirebaseDatabase.getInstance().getReference("yourReferance").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                for(DataSnapshot data : dataSnapshot.getChildren()) {
                    data.getRef().removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            Toast.makeText(getContext(), "Successfully remove", Toast.LENGTH_SHORT).show();
                        }
                    });
                }
            }

            .....
        });

创建一个内容为 {} 的新 JSON 文件。 转到 firebase 控制台,单击右侧的 3 个点,单击导入 JSON,选择新创建的 JSON 文件,它将从 firebase 数据库中删除所有数据。