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

时间:2017-02-11 23:20:05

标签: firebase firebase-realtime-database firebase-console

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

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

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

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

  

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

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

8 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:18)

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

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

firebase database:remove /

答案 2 :(得分:17)

我认为缺少一些提示 - 为什么缺少根级别的删除按钮或者我们怎么能快速完成呢。

Firebase Support的Alvin非常乐于助人:

  

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

解决方案非常简单,只需使用REST即可。通过他们的文档Removing Data,但他们没有显示如何删除所有文件。

删除Alvin的所有数据:

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

这意味着只有通过添加URL扩展名才能在控制台中为每个生成的JSON节点执行此操作:

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

我希望这有助于某人。

答案 3 :(得分:2)

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

enter image description here

然后点击delete

enter image description here

解决方案2:程序化

无论您使用何种语言,请拨打以下内容:

database.set('/', null)

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

database:remove /    

firebase CLI remove all data

<强> N.B:

  

请考虑先备份您的数据。

答案 4 :(得分:1)

以编程方式,您可以实现一个方法,该方法将一组空数据放在数据库的主根上 - 特别是您可以插入一个空值。

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

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

答案 5 :(得分:1)

我用过

import {C,Streams} from '@masala/parser'

function email() {

    const illegalCharSet1 = ' @\u00A0\n\t';
    const illegalCharSet2 = illegalCharSet1+'.';

    return C.charNotIn(illegalCharSet1).rep() // repeat( anyCharacter not illegal)
        .map(chars => ({start:chars.join()})) // will be kept by `.first()`
        .then(C.char('@'))
        .then(C.charNotIn(illegalCharSet2).rep())
        .then(C.char('.'))
        .then(C.charNotIn(illegalCharSet2).rep())
        .first(); // keep only the first  element of the tuple

}

let val = email().val('nicolas@masala.oss');
console.log(val); // {start:'nicolas')


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

仅供参考:

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

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

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

答案 6 :(得分:0)

喜爱的: 公共无效removeDataFromFirebaseDatabae(){FirebaseDatabase.getInstance()。getRefrence()。child(“您将删除的内容”).addChildEventListener(new onChildListener(){@ override 公共无效onChildAdded(DataSnapshot dp,String str){for(DataSnapshot dx:dp.getChildren()){dx.getRef()。removeValue()。addOnSuccessListener(new onSuccessListener(){@ override) public void onSuccess(Vvoid pvoid){Toast.makeText(this,“移除成功”,5000).show();}});}}});}

答案 7 :(得分: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();
                        }
                    });
                }
            }

            .....
        });