Firebase 安全权限在使用 isString 时告知字符串不是字符串
Firebase Security Permissions telling that a string is not a string while using isString
所以我正在将我的令牌发送到服务器,但出了点问题。我去测试我在 Firebase 模拟器上的权限,发现 .validate
行告诉我这是错误的。这是我的安全规则
{
"rules":{
"tokens":{
"users":{
"$uid":{
".read":"auth !== null && auth.uid === $uid",
".validate":"newData.isString()", // wrong here. idk why
".write":"auth !== null && $uid === auth.uid && (!data.exists() || newData.val() !== data.val())"
}
}
}
}
}
数据结构:
root
|- tokens
|- users
|- uid:token_value
我的输入如下:
模拟类型:写入
位置: /tokens/users/hA4hZrBieISwMOZaMYe7m6K5tpI3
数据(JSON):
{
"hA4hZrBieISwMOZaMYe7m6K5tpI3": "hi"
}
已验证: 正确
供应商: Google
UID: hA4hZrBieISwMOZaMYe7m6K5tpI3
问题是数据 (JSON) 中的 "hi"
被认为是非字符串值。有什么想法吗?
您要写入 /tokens/users/hA4hZrBieISwMOZaMYe7m6K5tpI3
的新数据不是字符串,而是 JSON 对象:
{
"hA4hZrBieISwMOZaMYe7m6K5tpI3": "hi"
}
要验证 hA4hZrBieISwMOZaMYe7m6K5tpI3
是一个字符串值:
{
"rules":{
"tokens":{
"users":{
"$uid":{
".read":"auth !== null && auth.uid === $uid",
"$key": {
".validate":"newData.isString()"
},
".write":"auth !== null && $uid === auth.uid && (!data.exists() || newData.val() !== data.val())"
}
}
}
}
}
所以我正在将我的令牌发送到服务器,但出了点问题。我去测试我在 Firebase 模拟器上的权限,发现 .validate
行告诉我这是错误的。这是我的安全规则
{
"rules":{
"tokens":{
"users":{
"$uid":{
".read":"auth !== null && auth.uid === $uid",
".validate":"newData.isString()", // wrong here. idk why
".write":"auth !== null && $uid === auth.uid && (!data.exists() || newData.val() !== data.val())"
}
}
}
}
}
数据结构:
root
|- tokens
|- users
|- uid:token_value
我的输入如下:
模拟类型:写入
位置: /tokens/users/hA4hZrBieISwMOZaMYe7m6K5tpI3
数据(JSON):
{
"hA4hZrBieISwMOZaMYe7m6K5tpI3": "hi"
}
已验证: 正确
供应商: Google
UID: hA4hZrBieISwMOZaMYe7m6K5tpI3
问题是数据 (JSON) 中的 "hi"
被认为是非字符串值。有什么想法吗?
您要写入 /tokens/users/hA4hZrBieISwMOZaMYe7m6K5tpI3
的新数据不是字符串,而是 JSON 对象:
{
"hA4hZrBieISwMOZaMYe7m6K5tpI3": "hi"
}
要验证 hA4hZrBieISwMOZaMYe7m6K5tpI3
是一个字符串值:
{
"rules":{
"tokens":{
"users":{
"$uid":{
".read":"auth !== null && auth.uid === $uid",
"$key": {
".validate":"newData.isString()"
},
".write":"auth !== null && $uid === auth.uid && (!data.exists() || newData.val() !== data.val())"
}
}
}
}
}