【发布时间】:2020-02-12 05:01:21
【问题描述】:
我正在尝试在我的 Firebase 实时数据库中实现基于用户的安全性。
作为一个基本示例,我希望经过身份验证的用户能够从“用户”节点读取/写入他们自己的数据。
我在 Realtime DB 规则模拟器中对此进行了测试,但使用以下参数读取失败:
Location: /users
Authenticated: true
Provider: Anonymous
UID: "aLoBLejDJ5P4PDZkZhe2LTxO8x32" (tried with and without quotation marks)
我得到“模拟读取被拒绝”(虽然没有解释为什么)。 当我尝试读取 REST HTTP GET 请求(“错误:权限被拒绝”)时,也会发生同样的情况。
这是我的数据库结构:
{
"users" : {
"-LrAxMc5SANNe-p1Fd6n" : {
"test" : "lol",
"uid" : "aLoBLejDJ5P4PDZkZhe2LTxO8x32"
}
}
}
这些是目前为止的规则
{
"rules": {
"users" : {
".indexOn": "date",
"$uid": {
".read" : "$uid === auth.uid",
".write" : "$uid === auth.uid",
}
}
}
}
预期的结果是在 HTTP 响应中获取 THAT 用户的数据,而不是我得到了上述权限错误。
作为 Firebase 的新手,我不知道问题出在哪里,如果我理解/实施规则语法错误或其他原因。
此外,与我在 Firebase 文档中看到的示例 uid 相比,我在注册的 HTTP 响应中收到的 uid(上图)看起来有很大不同,不知道这是否是问题的一部分?
目前我的应用程序中唯一的登录方法是电子邮件+密码。
【问题讨论】:
标签: firebase rest firebase-realtime-database