Last time we had Firebase Auth integrated at Angular 17. Here is a quick update to keep it fresh in Angular 19.
anchorProviders
Before update, our main.ts
looked like this
// main.ts before update
const fbApp = () => initializeApp(firebaeConfigHere);
const authApp = () => initializeAuth(fbApp(), {
persistence: browserSessionPersistence,
popupRedirectResolver: browserPopupRedirectResolver
});
const firebaseProviders: EnvironmentProviders = importProvidersFrom([
provideFirebaseApp(fbApp),
provideAuth(authApp),
]);
bootstrapApplication(AppComponent, {
providers: [
// ...
firebaseProviders
],
});
The updates touch the importProvidersFrom
, it is no longer needed
// main.ts thew new
const firebaseProviders = [
provideFirebaseApp(fbApp),
provideAuth(authApp),
];
bootstrapApplication(AppComponent, {
providers: [
// expand it
...firebaseProviders
],
});
anchorApp initializer token
One way to inject the AuthState
on application start was to use the APP_INITIALIZER
token with no return, and one injection, like this
{
provide: APP_INITIALIZER,
// dummy factory
useFactory: () => () => {},
multi: true,
// injected depdencies, this will be constructed immidiately
deps: [AuthState],
},
This simply becomes this:
// new provider
provideAppInitializer(() => {
inject(AuthState);
return null;
}),
That's it. Looks like the new Firebase library still works as designed.