Estoy tratando de hacer que Firebase App Check funcione, pero estoy luchando por encontrar una manera de hacerlo usando Angularfire, ya que parece que no hay documentos por lo que puedo encontrar.
... import { getFirestore, provideFirestore } from '@angular/fire/firestore'; import { AngularFireModule } from '@angular/fire/compat'; import { AngularFireStorageModule } from '@angular/fire/compat/storage'; import { initializeAppCheck, provideAppCheck, ReCaptchaV3Provider } from '@angular/fire/app-check'; import { FirebaseApps, getApp } from '@angular/fire/app'; @NgModule({ ... imports: [ ... AngularFireModule.initializeApp(environment.firebase), AngularFirestoreModule.enablePersistence(), AngularFireStorageModule, provideFirestore(() => getFirestore()), provideAppCheck(() => initializeAppCheck(getApp(), { provider: new ReCaptchaV3Provider(environment.recaptchaSiteKey), isTokenAutoRefreshEnabled: true })), ], }) export class AppModule {}Con esto me sale este error cuando ejecuto la aplicación:
NullInjectorError: R3InjectorError(AppModule)[AngularFireAuthGuard -> AngularFireAuth -> AppCheckInstances -> InjectionToken angularfire2.app-check-instances -> [object Object] -> FirebaseApps -> FirebaseApps -> FirebaseApps]: NullInjectorError: ¡No hay proveedor para FirebaseApps!
Y si agrego FirebaseApps directamente a proveedores como:
providers: [ FirebaseApps, ]Me sale este error en su lugar:
FirebaseError: Firebase: No se ha creado ninguna aplicación de Firebase '[DEFAULT]'; llame a Firebase App.initializeApp() (app/no-app).
¿Cuál es la forma correcta de hacer esto?
Así que logré resolver esto abandonando AngularFireModule y usando esto en su lugar:
provideFirebaseApp(() => initializeApp(environment.firebase)),También hubo que agregar:
{ provide: FIREBASE_OPTIONS, useValue: environment.firebase }, a los providers .
Después de eso, también tuve que agregar el "token de depuración de verificación de aplicaciones" que el SDK registra en la consola del navegador para depurar tokens en Firebase Console en la sección "Verificación de aplicaciones". Si no lo hace, sus solicitudes fallarán con un estado 403 .