¿Cómo puedo rastrear todo el tráfico en Firestore JS SDK?
Para explicarlo con más detalle, el siguiente código habilita el inicio de sesión detallado en la consola.
import { setLogLevel } from 'firebase/firestore'
setLogLevel('debug')
Ahora, cada vez que ocurre una comunicación de red, en la consola hay salidas como:
[2022-09-28T12:00:21.878Z] @firebase/firestore: Firestore (9.6.10): Conexión WebChannel recibida: {"documentChange":{"document":{"name":"projects /mu-project/databases/(predeterminado)/documents/my_collection/sHM7OvtpEygAKQBawxha","fields":{ ...
¿Es posible suscribirse a dichos registros con una devolución de llamada personalizada, en lugar de imprimirla en la consola, para poder analizar la comunicación?
Algo como:
import { setLogLevel, setLogger } from 'firebase/firestore'
setLogLevel('debug')
setLogger((message, payload) => {
// custom stuff
})
Está destinado a crear estadísticas sobre escrituras y lecturas, que están destinadas a ser utilizadas en FE en tiempo real.
Es posible que pueda crear su propia versión del SDK y hacer que haga lo que quiera. Es de código abierto .
De lo contrario, no, no es posible.
Probablemente sea mejor que instrumente su propio código de aplicación para que capture las cosas que está haciendo con Firestore.
Encontré la función onLog que se puede usar para registrar una devolución de llamada en cada mensaje de registro producido. Sin embargo, no resuelve la pregunta con precisión, porque la función no intercepta el registro y, por lo tanto, no puede silenciar la salida a la consola. Producirá una gran cantidad de mensajes de depuración que no se desean en la implementación de producción.
import { onLog, setLogLevel } from 'firebase/app'
setLogLevel('debug') // must be used to track the traffic
onLog((args) => {
console.log('Custom log callback: ', args)
}, {level: 'debug'})
También tenga en cuenta que se debe llamar a onLog después de inicializar el componente Firestore.