【发布时间】:2021-02-27 02:14:24
【问题描述】:
这是我的第一个问题,所以如果我遗漏了一些内容,请告诉我,非常感谢您阅读它。
我有一个具有这种结构的实时数据库:
-transactions
-uid
-transaction1...
使用这些规则添加新交易时:
{
"rules": {
"transactions": {
"$uid":{
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
}
}
}
}
这个网址:(我使用的是 REST API)
POST https://{{appName}}.firebaseio.com/transactions/{{userId}}.json?auth={{TOKEN}}
有了这些数据:
{
"title": "Postman Test",
"amount": 50,
"date": "2020-11-15",
"category": "other"
}
它按预期工作。但是当我添加以下验证时:
{
"rules": {
"transactions": {
"$uid":{
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
".validate": "newData.hasChildren(['title','amount'])",
}
}
}
}
它返回以下错误:"error": "Permission denied"
如果我把 !newData.hasChildren(['title', 'amount']) 改为,它可以工作,所以我认为它没有正确读取字段。
我应该提到,当我在 firebase 页面中尝试此规则时,它们会起作用,所以我很困惑。
我已阅读文档并搜索了类似的错误,但我无法修复它,因此非常感谢任何帮助。
非常感谢。
【问题讨论】:
-
您可以将解决方案添加为该帖子的答案并将其标记为已接受。
-
好的,谢谢,我会这样做的。
标签: reactjs firebase rest firebase-realtime-database firebase-security