¿Es posible tener un usuario no anónimo? Quiero tener un correo electrónico sin contraseña solo para iniciar sesión, el usuario recibe un correo electrónico y confirma su correo electrónico. Entonces quiero cambiar isAnonymous a falso.
Mi código:
const { user } = await signInAnonymously(auth) await updateEmail(user, email) await sendEmailVerification(user) setInterval(() => auth.currentUser.reload(), 2000)Como puede ver, el usuario verificó su correo electrónico pero aún es anónimo.
Editar
No es posible, el usuario no podrá iniciar sesión. Cada vez que el usuario intente iniciar sesión, creará un nuevo usuario anónimo que, al actualizar el usuario ( await updateEmail(user, email) ), dará como resultado la autenticación/correo electrónico. ya en uso.
Debe cambiar su mecanismo de autenticación aquí.
Primero, debe crear un Endpoint personalizado para verificar la dirección de correo electrónico del usuario en el backend y, en respuesta, el backend enviará un token personalizado de Firebase utilizando el SDK de administrador de Firebase. Este es un token JWT que se usará en la interfaz para autenticarse con firebase.
const uid = 'user-email'; getAuth() .createCustomToken(uid) .then((customToken) => { // Send token back to client }) .catch((error) => { console.log('Error creating custom token:', error); });En segundo lugar, en la interfaz, su aplicación se autenticará con Firebase utilizando el siguiente método de Firebase Client .
firebase.auth().signInWithCustomToken(token)