PERMISSION_DENIED(为错误的数据库产品设置的规则)
Posted
技术标签:
【中文标题】PERMISSION_DENIED(为错误的数据库产品设置的规则)【英文标题】:PERMISSION_DENIED (rules set for wrong database product) 【发布时间】:2019-01-13 10:18:08 【问题描述】:数据库规则:
service cloud.firestore
match /databases/database/documents
match /document=**
allow read, write;
存储规则:
service firebase.storage
match /b/bucket/o
match /allPaths=**
allow read, write;
上面写着Anyone with your database reference will be able to read or write to your database
我得到的错误:
Uncaught (in promise) Error: PERMISSION_DENIED: Permission denied
at firebase.js:1
at exceptionGuard (firebase.js:1)
at e.callOnCompleteCallback (firebase.js:1)
at firebase.js:1
at firebase.js:1
at t.onDataMessage_ (firebase.js:1)
at e.onDataMessage_ (firebase.js:1)
at e.onPrimaryMessageReceived_ (firebase.js:1)
at e.onMessage (firebase.js:1)
at e.appendFrame_ (firebase.js:1)
(anonymous) @ firebase.js:1
exceptionGuard @ firebase.js:1
e.callOnCompleteCallback @ firebase.js:1
(anonymous) @ firebase.js:1
(anonymous) @ firebase.js:1
t.onDataMessage_ @ firebase.js:1
e.onDataMessage_ @ firebase.js:1
e.onPrimaryMessageReceived_ @ firebase.js:1
(anonymous) @ firebase.js:1
e.appendFrame_ @ firebase.js:1
e.handleIncomingFrame @ firebase.js:1
mySock.onmessage @ firebase.js:1
我正在使用的代码示例:
let name = 'lorem'
let email = 'ipsum@test.com'
let imageUrl = 'secret_img_link'
let userId = 1231241241
firebase.database().ref('users/' + userId).set(
username: name,
email: email,
profile_picture : imageUrl
)
如果还有其他需要,请询问。 我被困在那个错误上,对此无能为力。 重新创建应用程序,什么都不做。
【问题讨论】:
您的代码看起来是用于实时数据库,而不是存储或 Firestore。 这是我在文档中唯一能找到的。 查看the docs。实时数据库的默认规则要求用户进行身份验证。 但是我如何登录 JS 然后@AndréKool 【参考方案1】:此问题已多次重复。让新手感到困惑的是导航到正确的地方。您的 Firebase 控制台中有云 Firestore 和实时数据库。在这种情况下,已经有几个人提供了解决方案。确保导航到 Firebase 控制台 --> 实时数据库 --> 权限并设置规则。但请记住,这仅在开发中允许。否则你不想让你的数据库向公众开放。
"rules":
".read": true,
".write": true
希望现在对于面临此问题的任何人来说都是直截了当的。
【讨论】:
【参考方案2】:好的,我自己找到了怎么做。
进入数据库,标题旁边有2个选项:
Cloud Firestore
,
Realtime database
选择实时数据库并转到规则
将规则更改为 true。
这解决了我的问题。
【讨论】:
这对我来说是真正的解决方案。我花了大约 5 小时来更改库,因为我认为我的控制台上的一切都是正确的,而且我不知道我不应该在这个新的Cloud Firestore
中,这要感谢 Firebase 出色的 UX 团队。
我想知道为什么实时数据库规则是 JSON 而不是 OP 的格式。感谢这个答案,我想通了!以上是关于PERMISSION_DENIED(为错误的数据库产品设置的规则)的主要内容,如果未能解决你的问题,请参考以下文章
FIREBASE WARNING:设置为/ notifications / failed:permission_denied
从 Cloud Tasks 触发 HTTP Cloud Function 时出现 PERMISSION_DENIED 403 错误
为啥@google-cloud/profiler 在 GKE 实例中运行时会抛出“permission_denied”错误?
尝试运行 Google Cloud Scheduler 任务时出现 PERMISSION_DENIED 错误
Firebase Cloud Functions Firestore 触发器产生:错误:7 PERMISSION_DENIED:缺少权限或权限不足