firebase - Firebase 实时数据库规则使用自定义 ID 的正则表达式
问题描述
我有一个要求,用户只能写入他们在 RT 数据库中的帐户节点。通常这会起作用:
"accounts": {
"$uid": {
".write": "$uid === auth.uid",
".read": "$uid === auth.uid"
},
但是,要求是来自 Authentication 的 uid 存储在以“US_”为前缀的“accounts”中。
所以,我试过这个:
"accounts": {
"$uid": {
".write": $uid.matches(/^US_/) + "auth.uid",
".read": "$uid === auth.uid"
},
还有这个:
"accounts": {
"$uid": {
".write": "$uid === /^US_/auth.uid",
".read": "$uid === auth.uid"
},
第二个似乎更接近工作,错误是:
保存规则时出错 - 第 44 行:正则表达式后的标志无效
我想知道这是否可能?
更新
这解析正确,但似乎不起作用(我无法通过规则):
"accounts": {
"$uid": {
".write": "$uid === 'US_' + 'auth.uid'",
".read": "$uid === auth.uid"
},
},
数据库结构
accounts:
uid: "US_blah",
createdAt: <datetime>,
username: "MickeyMouse"
解决方案
事实证明我不需要正则表达式。这有效:
"accounts": {
"$uid": {
".write": "$uid === 'US_' + auth.uid",
".read": "$uid === auth.uid"
},
推荐阅读
- erlang - Erlang Nitrogen 教程项目不起作用
- python - 按名称解析 json 值
- docker - 将 docker container exec 命令转换为 docker-compose yml 使用
- javascript - 如何使用 date-fns 复制函数
- javascript - 在选项卡中动态添加活动类 ajax 和 jQuery
- makefile - 编译器对 make 表现异常
- python - 下载文件时出现网页抓取问题 - 链接自动下载 PDF 文件,但我无法正确保存
- c - 用 C 语言从二进制文件中读取位
- firebase - 使用 logEvent 时无法在 Firebase 分析中获取项目数组
- javascript - 使用 Selenium 和 Python 单击 JavaScript 类型按钮“喜欢”