Tengo una aplicación Firebase que se ejecuta en dispositivos móviles y ahora necesito crear la versión web de la misma.
Por el momento, he integrado la interfaz de usuario de firebase para brindar a los usuarios la posibilidad de iniciar sesión. Dado que necesito mostrar un asistente si el usuario aún no está registrado, ¿cómo puedo verificar si el usuario existe en la base de datos para poder decidir si mostrar el asistente o no y luego agregarlo a la base de datos?
Considero que estás usando firebase auth y firestore, pero esta es la lógica
firebase.auth().onAuthStateChanged(async (user)=> { if (user == null){ //the user is not signed in, navigate to login screen }else{ //the user is signed in, try to check if he exists in the database or register him //let say you are using firestore roo let user_ = await firebase.app().auth().currentUser firebase.firestore().collection("collections_of_users").doc(user_.uid).get().then(snap =>{ if(snap.exists){ //the user exists }else{ //register him, and before make sure his email is verified by checking if emailVerified === true firebase.firestore().collection("collections_of_users").doc(user_.uid).set({user_mail: user_.email, user_name: "xxx"}) } }) } });Parece que está buscando el método fetchSignInMethodsForEmail , que devuelve la lista de proveedores con los que se ha iniciado sesión previamente en Firebase con una dirección de correo electrónico específica.
El flujo típico es:
fetchSignInMethodsForEmail para obtener una lista de proveedores