我开始使用使用Firebase实时数据库的代码。我实现了它到我的解决方案。连接和控制是完美的,所以我将它用于生产环境。
过了一段时间我正在进行升级,我需要再次删除所有数据 - 但是等等,console中的最高根级别没有删除按钮,并且只允许一次选择一个项目:
https://console.firebase.google.com/project/{{project_name}}/database/data
在上次更新中仅显示此消息,而下一步没有步骤:
只读&激活非实时模式以提高浏览器性能 选择具有较少记录的密钥以进行实时编辑或查看
问我如何一次删除所有数据?
答案 0 :(得分:24)
您可以手动创建包含单个空条目的JSON文件并将其导入,这将删除所有现有条目。
答案 1 :(得分:18)
答案 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
按钮。
然后点击delete
解决方案2:程序化
无论您使用何种语言,请拨打以下内容:
database.set('/', null)
解决方案3:Firebase CLI
从您的项目文件夹(您已经安装了firebase-tools)在终端中写下以下内容然后点击Enter
:
database:remove /
<强> 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)
答案 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();
}
});
}
}
.....
});