Firebase简单用户身份验证规则

Firebase简单用户身份验证规则,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我刚从Firebase开始 我正在使用一个quickstart js模板 我正在尝试添加一个.read安全规则,以便用户只能阅读用户创建的帖子 我有点困惑,因为如果我根据auth.id进行测试,规则是通过的,但是如果我根据auth.uid进行测试,规则是失败的(我知道auth.uid是正确的) 在模拟器中,此规则失败: { "rules": { // ".read": "auth != null", ".write": "auth != null", "post

我刚从Firebase开始

我正在使用一个quickstart js模板

我正在尝试添加一个.read安全规则,以便用户只能阅读用户创建的帖子

我有点困惑,因为如果我根据
auth.id
进行测试,规则是通过的,但是如果我根据
auth.uid
进行测试,规则是失败的(我知道auth.uid是正确的)

在模拟器中,此规则失败:

{
  "rules": {
   // ".read": "auth != null",
    ".write": "auth != null",
        "posts": {
      "$post": {
          ".read": "data.child('uid').val() === auth.uid",
      }
    }
  }
}
以下是数据库结构:

{
  "posts" : {
    "-KL6ecPO67H5B8SmPHJr" : {
      "body" : "Just testing out the firebase system.",
      "starCount" : 0,
      "title" : "Camp Se has it's first blog post",
      "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
    },
    "-KL6fUBOhsc4zosJbwjb" : {
      "body" : "Another post ja ja ja\n",
      "starCount" : 0,
      "title" : "Another post",
      "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
    }
  },
  "user-posts" : {
    "vaZrC0sSdYTiou587IuePVw9uRT2" : {
      "-KL6ecPO67H5B8SmPHJr" : {
        "body" : "Just testing out the firebase system.",
        "starCount" : 0,
        "title" : "Camp Se has it's first blog post",
        "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
      },
      "-KL6fUBOhsc4zosJbwjb" : {
        "body" : "Another post ja ja ja\n",
        "starCount" : 0,
        "title" : "Another post",
        "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
      }
    }
  },
  "users" : {
    "vaZrC0sSdYTiou587IuePVw9uRT2" : {
      "email" : "user@gmail.com"
    }
  }
}
模拟结果详细信息:

Simulation results
Type    read
Location    /posts/KL6ecPO67H5B8SmPHJr/
Data    null
Auth    { "provider": "google", "uid": "vaZrC0sSdYTiou587IuePVw9uRT2" }
Admin   false
edit Read denied
close
Line 7 (/posts/KL6ecPO67H5B8SmPHJr)
read: "data.child('uid').val() === auth.uid"

我的模拟器“位置”字段出错。当我从数据库复制帖子id时,我遗漏了前面的
-
字符


我解决了这个问题,规则也起作用了:-)

我的模拟器“位置”字段出错。当我从数据库复制帖子id时,我遗漏了前面的
-
字符


我解决了这个问题,规则也起作用了:-)

您的问题中包含了JSON树的图片。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出按钮轻松获得该文本。将JSON作为文本使其具有可搜索性,允许我们轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事(tm)。当您打开错误消息的详细信息时,它会说些什么。作为文本也比作为屏幕截图更有用。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出按钮轻松获得该文本。将JSON作为文本使其具有可搜索性,允许我们轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事(tm)。当您打开错误消息的详细信息时,它会说些什么。作为文本也比作为截图更有用。很高兴听到蒂姆。我将投票以打字错误结束你的问题,因为犯同样错误的人不太可能发现它(因为他们不知道问题的原因)。很高兴听到蒂姆。我将投票以打字错误结束你的问题,因为犯同样错误的人不太可能发现它(因为他们不知道问题的原因)。