[英]NullInjectorError: No provider for AngularFireAnalytics! Angular 8
When run 'npm test', I receive this error:运行“npm test”时,我收到此错误:
NullInjectorError: StaticInjectorError(DynamicTestModule)[ComparePageComponent -> AngularFireAnalytics]: StaticInjectorError(Platform: core)[ComparePageComponent -> AngularFireAnalytics]: NullInjectorError: No provider for AngularFireAnalytics! NullInjectorError: StaticInjectorError(DynamicTestModule)[ComparePageComponent -> AngularFireAnalytics]: StaticInjectorError(Platform: core)[ComparePageComponent -> AngularFireAnalytics]: NullInjectorError: 没有 AngularFireAnalytics 的提供者! error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ComparePageComponent', Function ] })
错误属性: Object({ ngTempTokenPath: null, ngTokenPath: ['ComparePageComponent', Function ] })
app.module.ts
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
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);
});
}
}
compare-page.component.ts
比较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', {});
}
Do you have any idea what's missing?你知道缺少什么吗?
I used this tutorial: https://www.positronx.io/firebase-authentication-in-angular-8-with-angularfire2/我使用了本教程: https : //www.positronx.io/firebase-authentication-in-angular-8-with-angularfire2/
There is no provider called AngularFireAnalytics
.没有名为
AngularFireAnalytics
提供程序。 Therefore you need to change the providers
array to the following:因此,您需要将
providers
数组更改为以下内容:
providers: [
...fromServices.services,
],
Then to use firebase analytics do the following in the component:然后要使用 firebase 分析,请在组件中执行以下操作:
import { AngularFireAnalytics } from '@angular/fire/analytics';
constructor(analytics: AngularFireAnalytics) {
analytics.logEvent('custom_event', { ... });
}
Check here :检查这里:
https://github.com/angular/angularfire/blob/master/docs/analytics/getting-started.md https://github.com/angular/angularfire/blob/master/docs/analytics/getting-started.md
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.