Tengo una colección de usuarios con algunos datos en firestore (con su uid como clave). Después de iniciar sesión, lo primero que quiero hacer es mostrar los datos del usuario y que el usuario pueda modificarlos, pero si onSnapshot se ejecuta fuera de onAuthStateChanged antes de recuperar el uid del usuario para obtener la referencia del documento, fallará la primera vez, lo que hace que mi código para dejar de ejecutar. Por alguna razón, ese error no se detecta, entonces, ¿es una buena práctica ponerlo en onAuthStateChanged para asegurarme de obtener el uid del usuario antes de que se ejecute onSnapshot por primera vez?
Si su oyente onSnapshot depende del usuario actual, entonces es idiomático adjuntar ese oyente en un controlador onAuthStateChanged cuando el user no es nulo, y luego separarlo allí cuando el user vuelve a ser nulo.