Firebase实时数据库权限被拒绝

问题描述 投票:0回答:1

[基本上,我正在尝试从Firebase实时数据库中读取数据。我收到拒绝的权限。

Firebase控制台->数据库->规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

我的应用代码:

const db = firebase.database(firebase.initializeApp(
      {databaseURL: “myApp.firebaseio.com"}
))
db.ref("/budgets/currentBudget")
  .once("value")
  .then((snapshot)=>console.log(snapshot))

由于我设置了规则,我希望能够连接到数据库并能够读取数据。我收到此错误:

错误:

 index.cjs.js:738 Uncaught (in promise) Error: permission_denied at /budgets/currentBudget: Client doesn't have permission to access the desired data.
    at errorForServerCode (index.cjs.js:738)
    at onComplete (index.cjs.js:10124)
    at Object.onComplete (index.cjs.js:14314)
    at index.cjs.js:13289
    at PersistentConnection.onDataMessage_ (index.cjs.js:13594)
    at Connection.onDataMessage_ (index.cjs.js:12735)
    at Connection.onPrimaryMessageReceived_ (index.cjs.js:12728)
    at WebSocketConnection.onMessage (index.cjs.js:12607)
    at WebSocketConnection.appendFrame_ (index.cjs.js:12144)
    at WebSocketConnection.handleIncomingFrame (index.cjs.js:12203)
    at WebSocket.mySock.onmessage (index.cjs.js:12078)

有几个问题可以解决,但是当规则在读取和写入时都简单地更改为true时,大多数问题都可以解决。任何想法如何使它工作?

firebase firebase-realtime-database firebase-security-rules
1个回答
0
投票

您显示的规则不适用于Firebase实时数据库。这些用于Cloud Firestore,这是一个完全不同的数据库。实时数据库具有不同的规则语言,这些语言被输入到Firebase控制台的不同部分。开始学习Realime数据库规则here

© www.soinside.com 2019 - 2024. All rights reserved.