我正在尝试将 Google Analytics 设置为 AngularFire 包的一部分,但到目前为止尚未成功。
到目前为止我尝试过的:
在 app.module.ts 中 -
import { provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
import { getAnalytics, provideAnalytics } from '@angular/fire/analytics';
@NgModule({
declarations: [
AppComponent,
LayoutComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
UiSharedModule,
FormsModule,
ReactiveFormsModule,
provideFirebaseApp(() => initializeApp(environment.firebase)),
provideAnalytics(() => getAnalytics()),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
在 app.component.ts 中 -
export class AppComponent {
title = 'myAwesomeApp';
// private analytics: Analytics = inject(Analytics); -- none of the injection attempts are working
constructor(private analytics: Analytics) {
// console.log(this.analytics.app.automaticDataCollectionEnabled); -- throws error - ERROR FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call initializeApp() first (app/no-app).
this.analytics.logEvent("some_event", {..}) - not exists anymore, any idea how i can use it?
}
}
我正在使用 Angular 16 和 Angular/fire - ^7.6.1
看起来您需要从分析导入
logEvent
并独立运行
import { Component, inject } from '@angular/core';
import { Analytics, logEvent } from '@angular/fire/analytics';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
private analytics: Analytics = inject(Analytics);
constructor() {
logEvent(this.analytics, 'event_name')
}
}