firebase-realtime-database - 我的 firebase 数据库规则中的模拟失败
问题描述
这是我的节点杰森:
{
"Users' Input History" : {
"TdtIwvAPewRr1l9HY67PfkLBPbn2" : {
"-M-eylUaQcCpoyTLwbhk" : "fate"
}
},
"Users' Vocabulary List" : {
"TdtIwvAPewRr1l9HY67PfkLBPbn2" : {
"-M-eyxRLoCpDftWQ4cDn" : "hardliner"
}
}
}
这个“TdtIwvAPewRr1l9HY67PfkLBPbn2”是“Users' Input History”节点下一个可以读写自己的值(这里是“fate”)的用户的uid,是“Users' Input History”节点下的值(这里是“hardliner”) “用户词汇表”节点。
这个 Jason 将继续拥有多个用户 (uid) 和他们自己的多个值。每个新用户 (uid) 都将填充在“用户输入历史”节点和“用户词汇表”节点下,并且来自该新用户的新值将填充在新 uid 下。
例如,我希望用户 A(uid A)只能读取和写入他自己的值,而不能读取和写入其他用户(uid B、C、D 等)的值,所以我编写了我的数据库规则,如所以:
{
"rules": {
"Users' Input History": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
},
"Users' Vocabulary List": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
但是,如下图所示,我在第 12 行收到此错误消息:Simulation failed: Expected '}'。请注意,第 12 行有一个红色标记,第 13 行有一个 ^ 标记。
我尝试了什么:我在“用户词汇表”之前添加了“}”。那没有用,然后我在“$uid”之前添加了。两者都导致我出现相同的错误消息:解析错误。我不知道我还能尝试什么。我的规则错了吗?我该如何纠正?
解决方案
您的“用户词汇表”的嵌套子项看起来放错了位置。在“规则”对象内向上移动它。
{
"rules": {
"Users' Input History": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
},
"Users' Vocabulary List": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
推荐阅读
- vue.js - 如何修复 Vue 3 中的“错误:未知选项:devServer”
- php - 尝试使用我的 API 密钥确保我的 Sendgrid 凭据允许我访问发送。消息:权限被拒绝,凭据错误
- powerbi - 小计 <> 行的总和
- python - 我不知道什么时候写 'if line.startswith('From: ')' 和 'if not line.startswith('From')
- delphi - 将类函数放到Delphi中的多个单元?
- javascript - 带有 getNotes 的 ARRAYFORMULA
- iis - .Net 核心中的 IIS 寻找目录而不是控制器
- python - 从函数中分离多个值
- dax - 如何修改 DAX ALLEXCEPT 以允许过滤
- reactjs - Reactjs条件渲染问题