firebase - Firebase 实时数据库已删除
问题描述
我在我的反应原生应用程序中使用 Firebase 实时数据库。大多数事情都是通过 REST API 云函数完成的。应用程序中很少有东西直接使用实时数据库。最近我注意到我数据库中的所有数据都无缘无故地被删除了。甚至不再使用且未在我的应用程序/云功能的源代码中引用的数据库部分也消失了。
问题发生在两个项目及其数据库(生产/测试)上。我必须使用备份来恢复它们,但即使没有人使用应用程序(例如在测试环境中),它也会再次发生。
有谁知道这个问题的根源是什么?我有部分负责删除数据的某些部分,但不可能同时运行所有部分。我该如何解决?如何一次删除所有数据?
我的安全规则如下:
{
"rules": {
"version": {
".read": true,
".write": false
},
"flatLocations": {
".read": false,
".write": false
},
"geoplaces": {
".read": false,
".write": false,
".indexOn": "g"
},
"locations": {
".read": true,
".write": false
},
"locationSubscriptions": {
".read": false,
".write": false
},
"profiles": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"subscriptionCodes": {
".indexOn": "vendingPointId",
".read": false,
".write": false
},
"usersRoles": {
".read": false,
".write": false
},
"usersSubscriptions": {
"$uid": {
".read": "$uid === auth.uid",
".write": false
}
},
"vendingPoints": {
".read": false,
".write": false,
".indexOn": "vendorId"
},
"customersBasicData": {
".read": false,
".write": false
},
"notificationTokens": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"scheduled": {
".read": false,
".write": false
}
}
}
仅添加了一些数据。我没有删除它们的代码。
解决方案
这个问题被undefined
用作参考。当你运行admin.database().ref(somethingWhichIsUndefined).remove()
时,整个数据库被擦除。
推荐阅读
- c - 多线程方式的矩阵乘法
- highcharts - RadialBar Highcharts 中的圆角
- azure - 如何从 ARM 模板部署初始化/格式化 Azure Windows VM 的数据磁盘?
- java - 在JAVA中计算所有小于或等于N的数字的乘法表的程序
- oracle - Oracle 12 c 数据库:: 有没有其他方法可以在 oracle 数据库中删除没有解压缩表的列?
- javascript - 从 JavaScript 数组中删除特定索引
- python - 如何在 Python 中制作正确的闭包函数?
- java - 我不能从 java 中的另一个实现类继承
- qt - qt快速材质样式控件
- php - PhpStorm 零配置调试不适用于 PHP 5.4.19