【发布时间】:2020-05-03 15:35:57
【问题描述】:
运行“npm test”时,我收到此错误:
NullInjectorError: StaticInjectorError(DynamicTestModule)[ComparePageComponent -> AngularFireAnalytics]: StaticInjectorError(平台:核心)[ComparePageComponent -> AngularFireAnalytics]: NullInjectorError:没有 AngularFireAnalytics 的提供者! 错误属性: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ComparePageComponent', Function ] })
app.module.ts
import {AngularFireModule} from "@angular/fire";
import {AngularFireAnalyticsModule, AngularFireAnalytics} from "@angular/fire/analytics";
@NgModule({
imports: [
.....
AngularFireModule.initializeApp(environment.firebase),
AngularFireAnalyticsModule,
],
providers: [
AngularFireAnalytics,
...fromServices.services,
],
firebase.service.ts
import { Injectable } from '@angular/core';
import { AngularFireAnalytics } from "@angular/fire/analytics";
@Injectable({ providedIn: 'root' })
export class FirebaseService {
constructor(private analytics: AngularFireAnalytics) {}
public logEvent(eventName: string, params: {}) {
this.analytics.logEvent(eventName, params).then( res => {
console.log('event registered', eventName, params);
})
.catch(error => {
console.log('error', error.message);
});
}
}
比较-page.component.ts
import {Component, OnDestroy, OnInit} from '@angular/core';
import {FirebaseService} from "../../../services/firebase.service";
export class ComparePageComponent implements OnInit, OnDestroy {
constructor(private firebaseService: FirebaseService) {
this.firebaseService.logEvent('test', {});
}
您知道缺少什么吗?
我用过这个教程:https://www.positronx.io/firebase-authentication-in-angular-8-with-angularfire2/
【问题讨论】:
-
你需要在
ComparePageComponent模块中包含AngularFireAnalyticsModule,这样当依赖注入解析实例时它才可用,此外,你应该在ComparePageComponent模块中模拟FirebaseService然后@987654329 @ 将不再是依赖项
标签: angular firebase webpack firebase-analytics