当前位置: 首页 > 知识库问答 >
问题:

Firebase实时数据库已删除

魏成济
2023-03-14

我在我的react本地应用程序中使用Firebase实时数据库。大多数事情都是通过REST API云函数来完成的。app中很少东西直接使用实时数据库。最近,我发现我数据库中的所有数据都被莫名其妙地删除了。甚至数据库中不再使用且未在我的应用程序/云功能的源代码中引用的部分也消失了。

问题发生在两个项目及其数据库(生产/测试)中。我必须使用备份来恢复它们,但即使没有人使用应用程序(例如,在测试环境中),也会再次发生。

有人知道这个问题的根源是什么吗?我有负责删除部分数据的部分,但不可能同时运行所有数据。如何排除故障?如何一次删除所有数据?

我的安全规则如下:

{
  "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
    }
  }
}

仅添加一些数据。我没有删除它们的代码。

共有1个答案

梁宪
2023-03-14

问题是未定义在引用中使用。当您运行<code>admin.database().ref时(定义了一些东西)。remove(),整个数据库将被建立。

 类似资料:
  • 我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。

  • 我仍在开发我的登录应用程序。此时,用户可以注册、登录和更新配置文件信息。数据存储在firebase实时数据库中,该装置也通过firebase工作。我想添加一个“删除配置文件”按钮,以便从firebase中删除用户信息。我弄清楚了如何从自动认证过程中删除用户。现在我尝试对Uid调用remove()函数,因此现在数据在实时数据库中被删除,但仍在Firebase身份验证中,如果删除userdata,应用

  • 我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire

  • 我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?

  • 从android工作室按特定值删除记录的适当代码是什么。 必需:如果starCount字段等于0,则删除所有记录。

  • 我是一个firebase用户,最近深入研究了rtdb,刚刚发现了一个限制文档,解释了单个数据库实例的写入限制,并引用了下面的引文: 单个数据库上每秒写入操作的限制。虽然不是硬限制,但如果每秒写入次数超过1000次,则写入活动可能会受到速率限制。 例如,在firestore的安全规则中,删除操作属于写操作的范畴,我猜这样的概念也适用于其他firebase服务。所以我想确切地知道< code>dele