PERMISSION_DENIED,当实际允许权限时

Idk*_*e V 4 javascript firebase firebase-realtime-database firebase-security-rules

数据库规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

存储规则:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它说 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
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码示例:

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
})
Run Code Online (Sandbox Code Playgroud)

如果还需要其他任何东西,请问.我坚持这个错误,无法做任何事情.重新创建应用,什么都不做.

Idk*_*e V 19

好吧,我自己发现了如何做到这一点.

转到数据库,标题旁边有2个选项:

Cloud Firestore, Realtime database

选择实时数据库并转到规则

将规则更改为true.

这解决了我的问题.

  • 那是我真正的解决方案。我花了大约5小时的时间来更改库,因为我认为控制台上的所有内容都是正确的,而且由于Firebase出色的UX团队,我不知道自己不应该进入这个新的“ Cloud Firestore”。 (2认同)