angular - NullInjectorError:没有 AngularFireAnalytics 的提供者!角 8
问题描述
运行“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/
解决方案
没有提供者称为AngularFireAnalytics
. 因此,您需要将providers
数组更改为以下内容:
providers: [
...fromServices.services,
],
然后要使用 firebase 分析,请在组件中执行以下操作:
import { AngularFireAnalytics } from '@angular/fire/analytics';
constructor(analytics: AngularFireAnalytics) {
analytics.logEvent('custom_event', { ... });
}
在这里检查:
https://github.com/angular/angularfire/blob/master/docs/analytics/getting-started.md
推荐阅读
- java - 当我在 sts 中创建 web 启动项目时,它在 pom 和 java 文件中显示错误
- c++11 - 想要定义具有相同前缀的宏列表
- php - 无法使用 PHP 按相同键对 json 对象进行排序
- ios - 我的 .ipa 中的“符号文件太多”但 dSYM 文件丢失
- google-apps-script - 我正在制作一个脚本来更新谷歌表格中的最后更新列,但我有各种表格用于添加条目
- node.js - 在mongodb中过滤2个数组后如何获取文档?
- excel - Excel VBA - Application.Visible = False 不工作
- sql - 如何将其转换为 laravel
- go - (*SomeStruct)(nil) 是什么意思?
- swift - 将动画覆盖添加到 UIImage 并保存为视频到相机胶卷