angular - 导入 AngularFirestore - NullInjectorError:InjectionToken angularfire2.app.options 没有提供者
问题描述
我正在尝试从 firebase firestore 获取数据。我想使用 {AngularFirestore}。我得到如下错误。
NullInjectorError:R3InjectorError(ChatRoomPageModule)[AngularFirestore -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options]:NullInjectorError:没有 InjectionToken angularfire2 的提供者。应用程序选项!NullInjectorError:R3InjectorError(ChatRoomPageModule)[AngularFirestore -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options -> InjectionToken angularfire2.app.options]:NullInjectorError:没有 InjectionToken angularfire2 的提供者。应用程序选项!`
下面是我的chatroom.page.ts。
import { Component, OnInit } from '@angular/core';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFirestore } from '@angular/fire/firestore';
import * as firebase from 'firebase';
import { Router} from '@angular/router';
import { AlertController } from '@ionic/angular';
import { AngularFireDatabase } from 'angularfire2/database';
@Component({
selector: 'app-chat-room',
templateUrl: './chat-room.page.html',
styleUrls: ['./chat-room.page.scss'],
})
export class ChatRoomPage implements OnInit {
text: string;
me: string;
you: string;
chatRef: any;
userid: string;
size: number;
index: number;
user1: string;
user2: string;
number: number;
tmpid: string;
tmpYou: string;
currentU: string;
chatnum: number;
constructor(
public atrCtrl:AlertController,
public router: Router,
public db:AngularFireDatabase,
public fs:AngularFirestore
) {
this.chatRef = fs.collection('chats', ref => ref.orderBy('Timestamp')).valueChanges();
}
下面是我的 app.module.ts。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { AngularFireStorageModule } from 'angularfire2/storage';
import{FIREBASE_CONFIG} from './environment'
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFirestore } from '@angular/fire/firestore';
@NgModule({
declarations: [
AppComponent
],
entryComponents: [],
imports: [
BrowserModule,
IonicModule.forRoot(),
AppRoutingModule,
AngularFireAuthModule,
AngularFireStorageModule,
AngularFireModule.initializeApp(FIREBASE_CONFIG),
AngularFireDatabaseModule,
AngularFirestoreModule
],
providers: [
AngularFirestore,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent],
})
export class AppModule {}
下面是我的 chatroompage.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ChatRoomPageRoutingModule } from './chat-room-routing.module';
import { ChatRoomPage } from './chat-room.page';
import {AngularFirestore} from '@angular/fire/firestore';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ChatRoomPageRoutingModule
],
declarations: [ChatRoomPage],
providers:[AngularFirestore]
})
export class ChatRoomPageModule {}
我该如何解决这个错误?我导入了 AngularFirestore,并在 app.module 中设置了提供程序,但它不起作用。
解决方案
推荐阅读
- c# - C#.当我使用重载时如何避免代码重复
- c# - 无法在单元测试中打开数据库但创建了数据库
- c# - EF Core 3.1 中的时间跨度问题
- django - Django内部加入
- python-3.x - TensorFlow 错误在单个数据集上产生结果
- docker - 没有这样的主机:Docker daemon 无法访问 kubernetes 注册表,但同一节点上的 wget 可以连接到注册表
- c# - Task.Run 或 TaskFactory.StartNew 是否总是不适合在异步方法中使用?
- angular - tslint:“object-literal-shorthand”的好处
- javascript - 如何在 javascript 类的另一个函数中调用异步函数?
- django - 如何在应用程序中声明以后通常可以覆盖的设置?