Ошибка Angular Firebasedatabase Не удается прочитать свойство 'databaseURL' из неопределенного - PullRequest
0 голосов
/ 24 мая 2018

Я устанавливаю FireBase на Angular 4 и добавляю его в приложение-модуль, и в среде я получаю скрипт конфигурации. Я изменил, я изменил достоверно с rull на true

, а в компоненте я импортировал AngularFireDatabase и записал

app-module

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';
import { AppComponent } from './app.component';
import { UsersComponent } from './component/users/users.component';


@NgModule({
  declarations: [
    AppComponent,
    UsersComponent
  ],
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFireDatabaseModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

enviromnet

export const environment = {
  production: false
  firecase:{
    apiKey: "AIzaSyCD3yDwF7qBcepnAXEspXbfchMtaGncHtg",
    authDomain: "courses-4d546.firebaseapp.com",
    databaseURL: "https://courses-4d546.firebaseio.com",
    projectId: "courses-4d546",
    storageBucket: "courses-4d546.appspot.com",
    messagingSenderId: "760508178350"
  }

};

компонент

import { Component, OnInit } from '@angular/core';
import {AngularFireDatabase } from 'angularfire2/database';

@Component({
  selector: 'app-users',
  templateUrl: './users.component.html',
  styleUrls: ['./users.component.css']
})
export class UsersComponent implements OnInit {

  courses: any[];

constructor(db: AngularFireDatabase) {
  db.list('/courses')
    .subscribe(courses =>{
    this.courses=courses;
    console.log(this.courses);
  })
}

  ngOnInit() {
  }

}

У меня ошибка Невозможно прочитать свойство'databaseURL' не определено [! [введите описание изображения здесь] [1]] [1]

AppComponent.html:2 ERROR TypeError: Cannot read property 'databaseURL' of undefined
    at RepoManager.databaseFromApp (index.cjs.js:14981)
    at Object.instance.INTERNAL.registerService.Reference [as database] (index.cjs.js:15328)
    at FirebaseAppImpl._getService (index.cjs.js:134)
    at FirebaseAppImpl.(:4200/anonymous function) [as database] (webpack-internal:///./node_modules/@firebase/app/dist/index.cjs.js:323:31)
    at eval (database.js:11)
    at ZoneDelegate.invoke (zone.js:388)
    at Zone.run (zone.js:138)
    at NgZone.runOutsideAngular (core.js:4708)
    at new AngularFireDatabase (database.js:9)
    at _createClass (core.js:10943)

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

в вашем файловом модуле приложения вы называете это

AngularFireModule.initializeApp(environment.firebase),

, поэтому вам нужно сделать его firebase вместо firecase в среде, так что ваша среда должна бытьвыглядеть как

export const environment = {
     production: false
     firebase:{
        apiKey: "AIzaSyCD3yDwF7qBcepnAXEspXbfchMtaGncHtg",
        authDomain: "courses-4d546.firebaseapp.com",
        databaseURL: "https://courses-4d546.firebaseio.com",
        projectId: "courses-4d546",
        storageBucket: "courses-4d546.appspot.com",
        messagingSenderId: "760508178350"
     }

};
0 голосов
/ 08 июля 2018

Я получил ту же проблему сегодня и решил одним способом.Вы поместили конфигурацию Firebase в файл environment.ts.Вместо этого поместите эти данные в 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';
 import { AppComponent } from './app.component';
 import { UsersComponent } from './component/users/users.component';

 export const firebaseConfig = {
    apiKey: "AIzaSyCD3yDwF7qBcepnAXEspXbfchMtaGncHtg",
    authDomain: "courses-4d546.firebaseapp.com",
    databaseURL: "https://courses-4d546.firebaseio.com",
    projectId: "courses-4d546",
    storageBucket: "courses-4d546.appspot.com",
    messagingSenderId: "760508178350"
 }

 @NgModule({
   declarations: [
     AppComponent,
     UsersComponent
   ],
   imports: [
     BrowserModule,
     AngularFireModule.initializeApp(firebaseConfig),
     AngularFireDatabaseModule
   ],
   providers: [],
   bootstrap: [AppComponent]
 })
 export class AppModule { }

Это работает, но я не знаю точный способ устранения databaseURL ошибки.

0 голосов
/ 24 мая 2018

Сообщение об ошибке будет означать, что firebase не была инициализирована с объектом конфигурации (который содержит databaseUrl).

Вы уверены, что вызываете firebase.initializeApp, как описано в документация по настройке веб ?

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