Principiante que juega con una aplicación angular que se conecta a Firebase RTDB y trata de implementar App Check. Espero que me esté perdiendo algo simple...
En Firebase console > configuración > App Check > RTDB/Métricas de solicitud de App Check: todas mis solicitudes se muestran como "Sin verificar: solicitudes de clientes obsoletas"
Cuando se aplica, obtengo errores 401 en la consola del navegador cuando intento leer la base de datos (que es lo que esperaría ya que se denegaron mis solicitudes) y cuando no se aplica, puedo acceder a la RTDB y leer/escribir como se esperaba (entonces no es ninguna regla de seguridad DB)
Versiones: Angular CLI: 13.2.1
Nodo: 16.12.2
MNP: 8.2.1
Sistema operativo: brazo Darwin64
@angular/fuego: 7.2.0
CLI de Firebase: 10.1.4
aplicación.módulo.ts:
import { AngularFireModule } from '@angular/fire/compat'; import { AngularFireDatabaseModule } from '@angular/fire/compat/database'; import firebase from 'firebase/compat/app'; import { environment } from '../environments/environment'; ... firebase.initializeApp(environment.firebaseConfig) console.log("FB: " + environment.firebaseConfig.databaseURL) const appCheck = firebase.appCheck() appCheck.activate(RECAPTCHA_V3_SITE_KEY) console.log("TOKEN") ... imports: [ AngularFireModule.initializeApp(environment.firebaseConfig), AngularFireDatabaseModule, ] ... providers: [ { provide: RECAPTCHA_V3_SITE_KEY, useValue: environment.appCheckSiteKey }
Función de lectura de base de datos:
getItem(itemUID: string): Observable<PublicItem>{ return this.http.get<PublicItem>(`${this.refURL}/items/${itemUID}/det.json`); }
Durante la prueba, estoy ng serve --configuration production
, he habilitado (en contra de las recomendaciones) localhost en los dominios de captcha (sí, lo eliminaré), así como en los dominios que estoy usando, pero el problema aún ocurre cuando uso firebase hosting . Implementé recaptcha V3 en otra área de la aplicación antes de escribir la base de datos y todo parece funcionar correctamente.
El acceso a la base de datos funciona cuando no se aplica en Firebase, por lo que sé que mi entorno y el código de lectura de db funcionan, puedo ver las solicitudes en las métricas de verificación de la aplicación para que mis claves de recaptcha públicas y secretas sean correctas en mi aplicación y Firebase. Al pasar el cursor sobre la información sobre herramientas para "Sin verificar: solicitudes de clientes desactualizadas", dice "... por lo general, de una versión anterior de Firebase SDK antes de que se incluyera App Check en la aplicación". fecha...
Los únicos errores en la consola del navegador son el 401: Unauthorized
al intentar acceder a la URL de la base de datos para extraer datos.
Lamentablemente, mis habilidades angulares y de desarrollo web deficientes significan que hay muchas cosas que no entiendo y todavía tengo soluciones de ingeniería inversa desde aquí y la documentación, pero a ambos les faltan pasos que pueda entender... ¿Alguien puede detectar algo? ¿Debería llamar a appCheck en otro lugar? ¿Hay un token que uso cuando leo? Cuanto más excavo, más me pierdo...
Gracias