После установки firebase я получаю следующую ошибку: Клиент не имеет разрешения на доступ к нужным данным - PullRequest
0 голосов
/ 29 июня 2018

Я просто хочу установить firbase как базу данных, но постоянно получаю эту ошибку:

ERROR Error: permission_denied at /courses: Client doesn't have permission to access the desired data.
    at errorForServerCode (index.cjs.js:647)
    at onComplete (index.cjs.js:9114)
    at Object.onComplete (index.cjs.js:12681)
    at index.cjs.js:11797
    at PersistentConnection.push../node_modules/@firebase/database/dist/index.cjs.js.PersistentConnection.onDataMessage_ (index.cjs.js:12052)
    at Connection.push../node_modules/@firebase/database/dist/index.cjs.js.Connection.onDataMessage_ (index.cjs.js:11337)
    at Connection.push../node_modules/@firebase/database/dist/index.cjs.js.Connection.onPrimaryMessageReceived_ (index.cjs.js:11331)
    at WebSocketConnection.onMessage (index.cjs.js:11232)
    at WebSocketConnection.push../node_modules/@firebase/database/dist/index.cjs.js.WebSocketConnection.appendFrame_ (index.cjs.js:10837)
    at WebSocketConnection.push../node_modules/@firebase/database/dist/index.cjs.js.WebSocketConnection.handleIncomingFrame (index.cjs.js:10887)

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { environment } from '../environments/environment';

  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFireDatabaseModule,
  ]

app.component.ts

export class AppComponent implements OnInit {
  courses: Observable<any>;

  constructor(private _db: AngularFireDatabase) {}

  ngOnInit() {
    this.courses = this._db.list('/courses').valueChanges();
  }
}

Только что установлен

npm install firebase angularfire2 --save

не помогло

npm install firebase-tools --save
firebase login
firebase init

тоже не помогло

файл базы данных.rules.json

{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}

вкладка "правила" на сайте console.firebase.google.com

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Подскажите пожалуйста, как правильно установить firebase в Angular 6

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Вы установили правила безопасности для базы данных Cloud Firestore . Но ваш код пытается прочитать из базы данных Firebase Realtime . Две базы данных полностью разделены и используют разные правила безопасности для контроля доступа.

Чтобы разрешить доступ на чтение / запись к вашему /courses узлу в базе данных реального времени, перейдите к правилам безопасности для базы данных реального времени и используйте:

{
  "rules": {
    "courses": {
      ".read": true,
      ".write": true
    }
  }
}
0 голосов
/ 30 июня 2018

На сайте console.firebase.google.com на вкладке «База данных» я выбрал «База данных реального времени» вместо Cloud Firestore (бета), которая была по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...