Estoy trabajando con la interfaz web de Firebase Realtime Database (SDK 8.10.0) y me encuentro con un error muy extraño.
Solo les sucede a los usuarios de Safari en Mac (todavía no hemos descartado Safari en iOS, pero definitivamente no les sucede a los usuarios de Chrome o Firefox en Mac, ni a nadie en la PC) y es errático: sucede tal vez el 20% de el tiempo.
Aquí está la línea de código ofensiva:
firebase.database().ref('/userdata/' + authToken + '/user_id').once('value').then(function(snapshot) {Cuando ocurre este error, se omite toda la función de devolución de llamada. No se registran errores. He agregado muchos registros de consola dentro del bloque de código; nada de eso desencadena. El registro de la consola después de la devolución de llamada, en el flujo normal, funciona como se esperaba.
Consideré la posibilidad de que el valor que está buscando no se haya rellenado, pero mi entendimiento de la documentación es que la devolución de llamada debería activarse independientemente. Intenté cambiar de once() a get() pero no funcionó.
Se agradecería cualquier teoría sobre el problema o consejo para recopilar más información.
ANEXO: La actualización a la versión 9 del SDK de Javascript resolvió este problema. Dejo esto aquí en caso de que alguien con el mismo problema tropiece con esto. Ni siquiera tuve que reescribir nada; v9 en modo de compatibilidad funcionó perfectamente con el mismo código.