我开始使用使用 Firebase 实时数据库的代码。我将其实施到我的解决方案中。连接和控制都很完美,所以我把它用于生产环境。
过了一段时间,我进行升级,我需要再次删除所有数据 - 但是等等,在最高根级别的console中不再有删除按钮,并且一次只允许在一个选定的项目中:
https://console.firebase.google.com/project/{{project_name}}/database/data
在上次更新中仅显示此消息,没有下一步:
激活只读和非实时模式以提高浏览器性能 选择记录较少的键进行实时编辑或查看
问如何一次性删除所有数据?
您可以手动创建一个包含单个空条目的 JSON 文件并将其导入,这将删除所有现有条目。
从 Firebase 数据库中删除所有数据的一种简单方法是使用 Firebase CLI。
设置 CLI 后,您只需使用此命令,您的数据就会被删除:
firebase database:remove /
来自 Firebase 支持的 Alvin :
记录或节点数据过多,使得数据查看器切换到只读/非实时模式以提高浏览器的性能。
Firebase 文档显示删除数据 - 只是他们没有显示如何删除所有数据。
要删除所有数据,您可以使用 REST 命令 - 该命令会删除该节点级别上的整个 JSON 输出
curl -X DELETE "https://{{project_id}}.firebaseio.com/.json"
因此您可以通过添加 JSON 扩展在每个生成的“控制台中的URL节点”上执行此操作
https://{{project_id}}.firebaseio.com/{{path}}/{{path}}/{{path}}/.json
我用过
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 点,我将其写为答案
以编程方式,您可以实现一个方法,将一组空数据放在数据库的主根上 - 具体来说,您可以插入一个空值。
在我的 Android 项目中,它看起来像这样:
void removeDataFromDatabase(){
DatabaseReference root = FirebaseDatabase.getInstance().getReference();
root.setValue(null);
}
创建一个新的 JSON 文件,内容为 {}。 转到 Firebase 控制台,单击右侧的 3 个点,单击“导入 JSON”,选择新创建的 JSON 文件,它将删除 Firebase 数据库中的所有数据。
此代码有助于在 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();
}
});
}
}
.....
});
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
爱过:
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();
}});
}}});
}