Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

ScreenTrackingService and UserTrackingService not triggering events in Angular 19

Aberta
#3,633 5 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
angular, firebase, typescript

Direção de pesquisa

Comece com app.config.ts e os pontos de entrada ScreenTrackingService e UserTrackingService; em seguida, reproduza a navegação de app.routes.ts e as alterações de autenticação usando signInWithPopup. Verifique por que os construtores dos serviços e ɵscreenViewEvent não são alcançados. Está concluído quando as alterações de rota e o login/logout produzirem os eventos esperados no Firebase DebugView.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Overview of the Issue

Using Angular 19 and AngularFire 19, the ScreenTrackingService and UserTrackingService do not trigger events.

Angular Version

Here is a section of my package.json:

"dependencies": {
    "@angular/animations": "^19.0.0",
    "@angular/cdk": "^19.1.2",
    "@angular/common": "^19.0.0",
    "@angular/compiler": "^19.0.0",
    "@angular/core": "^19.0.0",
    "@angular/fire": "^19.0.0",
    "@angular/forms": "^19.0.0",
    "@angular/platform-browser": "^19.0.0",
    "@angular/platform-browser-dynamic": "^19.0.0",
    "@angular/router": "^19.0.0",
    "@ngrx/signals": "^19.0.0",
    "@ngrx/store": "^19.0.0",
    "@ngrx/store-devtools": "^19.0.0",
    "@ngx-translate/core": "^16.0.4",
    "@ngx-translate/http-loader": "^16.0.1",
    "@tailwindcss/postcss": "^4.0.0",
    "lodash": "^4.17.21",
    "postcss": "^8.5.1",
    "rxjs": "~7.8.0",
    "tailwindcss": "^4.0.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.15.0"
  },
Motivation for or Use Case

These services are supposed to automatically log router and firebase authentication events. When I use the logEvent function from the analytics package, events are logged, but I do not see any events logged from ScreenTrackingService and UserTrackingService

Browsers and Operating System

I am using Chrome Version 133.0.6943.142 (Official Build) (64-bit) on Windows 10

Reproduce the Error

On the DebugView in the Firebase Console, I can see the page_view event for the initial page load.

When I click links to routes around my app, or when I login and logout, I do not see any events.

Here is a component where I am manually triggering an event, and I can see the event in the DebugView:

@Component({
  selector: 'app-home',
  imports: [CommonModule, SharedModule, TranslateModule, RouterModule],
  templateUrl: './home.component.html',
  styleUrl: './home.component.css'
})
export class HomeComponent {
  readonly analytics = inject(Analytics);

  chooseSample(sample: { name: string, words: string[] }) {
    logEvent(this.analytics, 'select_item', {
      items: [{ item_name: sample.name }],
      item_list_name: 'Samples',
      item_list_id: 'samples'
    });
  }
}

Here is my app.routes.ts file:

export const routes: Routes = [
  {
    path: '',
    loadComponent: () => import('./home/home.component').then(c => c.HomeComponent)
  },
  {
    path: 'samples',
    loadChildren: () => import('./samples/sample.module').then(c => c.SampleModule)
  },
];

Here is the sample.module file:

@NgModule({
  imports: [
    CommonModule,
    SampleRoutingModule
  ]
})
export class SampleModule { }

Here is the SampleRoutingModule:

const routes: Routes = [
  {
    path: '',
    component: ListComponent
  },
  {
    path: 'create',
    component: CreateComponent
  },
  {
    path: 'view/:id',
    component: ViewComponent
  },
  {
    path: 'edit/:id',
    component: EditComponent
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class SampleRoutingModule { }

On the HomeComponent, I link to the various pages in the SampleModule like this:

<a routerLink="samples">{{ 'samples' | translate }}</a>
<a routerLink="/samples/create">{{ 'create a sample' | translate }}</a>

Here is my app.config.ts file:

export const appConfig: ApplicationConfig = {
  providers: [
    provideZoneChangeDetection({ eventCoalescing: true }),
    provideHttpClient(),
    importProvidersFrom([TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: httpLoaderFactory,
        deps: [HttpClient],
      },
    })]),
    provideRouter(routes, withInMemoryScrolling({ anchorScrolling: 'enabled'})),
    provideStore({}),
    provideStoreDevtools({ maxAge: 25, logOnly: environment.production, trace: true, traceLimit: 50 }),
    provideFirebaseApp(() => initializeApp(environment.firebase)),
    provideAuth(() => {
      const auth = getAuth();
      if (!environment.production) {
        connectAuthEmulator(auth, 'http://192.168.1.104:9099', { disableWarnings: true });
      }
      return auth;
    }),
    provideAnalytics(() => getAnalytics()),
    ScreenTrackingService,
    UserTrackingService,
    provideAppCheck(() => {
      if (!environment.production) {
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      }
      const provider = new ReCaptchaEnterpriseProvider(environment.reCaptchaSiteKey);
      return initializeAppCheck(undefined, { provider, isTokenAutoRefreshEnabled: true });
    }),
    provideFirestore(() => {
      const firestore = getFirestore();
      if (!environment.production) {
        connectFirestoreEmulator(firestore, '192.168.1.104', 8080);
      }
      return firestore;
    }),
    provideFunctions(() => {
      const functions = getFunctions();
      if (!environment.production) {
        connectFunctionsEmulator(functions, '192.168.1.104', 5001);
      }
      return functions;
    })
  ]
};

I also tried these configs in the app config and the result was the same:

    { provide: ScreenTrackingService },
    { provide: UserTrackingService },
    { provide: ScreenTrackingService, useClass: ScreenTrackingService },
    { provide: UserTrackingService, useClass: UserTrackingService },
    { provide: ScreenTrackingService, useExisting: ScreenTrackingService },
    { provide: UserTrackingService, useExisting: UserTrackingService },
Suggest a Fix

When I run the Google Analytics Debugger, I can see events logging in the console from the logEvent function call in the HomeComponent. When I click various router links, I do not see any logs in the console. When I log in and out (using firebase auth signInWithPopup), I don't see any logs.

I added some debugger breakpoints in the ScreenTrackingService and UserTrackingService. The breakpoints at the top of the file are hit, so the file is loading. But the breakpoints in the constructors and ɵscreenViewEvent function are not hit at all.

It seems like the ScreenTrackingService and UserTrackingService are not getting constructed, called, or instantiated.

Linguagem predominante
TypeScript
Estrelas
7.8k
Forks
2.2k
Merge médio
3d 6h
PRs com merge (30d)
5

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de angular/angularfire

Todas as issues de angular/angularfire

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.