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

问题描述 投票:0回答:10

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

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

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

在上次更新中仅显示此消息,没有下一步:

激活只读和非实时模式以提高浏览器性能 选择记录较少的键进行实时编辑或查看

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

firebase firebase-realtime-database firebase-console
10个回答
69
投票

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


35
投票

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

设置 CLI 后,您只需使用此命令,您的数据就会被删除:

firebase database:remove /

22
投票

为什么缺少 Firebase 删除按钮?

来自 Firebase 支持的 Alvin :

记录或节点数据过多,使得数据查看器切换到只读/非实时模式以提高浏览器的性能。


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

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

要删除所有数据,您可以使用 REST 命令 - 该命令会删除该节点级别上的整个 JSON 输出

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

因此您可以通过添加 JSON 扩展在每个生成的“控制台中的URL节点”上执行此操作

https://{{project_id}}.firebaseio.com/{{path}}/{{path}}/{{path}}/.json

5
投票

解决方案1:控制台 在您的项目中,单击数据库顶层的

x
按钮。

然后点击

delete

解决方案 2:程序化

无论您使用什么语言,都可以这样称呼:

database.set('/', null)

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

Enter
:

database:remove /    

注意:

请考虑先备份您的数据。


5
投票

我用过

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

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

我也想在评论部分发表评论,但由于缺乏 stackoverflow 点,我将其写为答案


3
投票

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

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

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

1
投票

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


0
投票

此代码有助于在 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();
                        }
                    });
                }
            }

            .....
        });

0
投票
Why missing Firebase remove button ?
Alvin from 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.

Remove all data from Firebase from command line
Firebase documentation show Removing Data - just they don't show how remove all data.

For remove all data you can use REST command - which remove whole JSON output on that node level

curl -X DELETE "https://{{project_id}}.firebaseio.com/.json"
so you can do this on every generated "URL node in console" by adding JSON extension

https://{{project_id}}.firebaseio.com/{{path}}/{{path}}/{{path}}/.json

-1
投票

爱过:

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();
}});
}}});
}
© www.soinside.com 2019 - 2024. All rights reserved.