用于防止 create/delete 不起作用的 Firebase 实时数据库安全规则

Firebase Realtime Database Security Rules for prevent create/delete not working

我在几个地方看到,防止创建和删除的方法是 data.exists() && newData.exists()。但是当我在这些规则中实现它们时,我仍然可以在登录时根据自己的喜好创建和删除。我做错了什么?我的目标是让经过身份验证的用户更新,但不能创建或删除。

"rules": {
    "listings": {
      ".read": true,
      ".write": "data.exists() && newData.exists() && auth != null",
    },
}

我的猜测是您希望允许用户更新特定列表,而不是一次更新所有列表。

在这种情况下,您应该在每个特定列表中定义 .write 规则:

"rules": {
    "listings": {
      ".read": true,
      "$listingid": {
        ".write": "data.exists() && newData.exists() && auth != null",
      }
    },
}

因此,用户可以更新任何现有列表,但不能同时更新所有列表。