Ahora mismo estoy haciendo lo siguiente:
function resetPassword(email) { /* The following is for the alert dialog box that is triggered when the user presses forget password! */ Swal.fire({ title: 'Enter the email address', input: 'text', inputAttributes: { autocapitalize: 'off' }, showCancelButton: true, confirmButtonText: 'Send Reset Email', }).then((input) => { firebase.auth().sendPasswordResetEmail(email) .then(() => { Swal.fire({ title: 'Email Sent!', text: 'Check your email for a reset link!', type: 'success', confirmButtonText: 'Cool' }); }) .catch((error) => { Swal.fire({ title: 'Error!', text: error.message, type: 'error', confirmButtonText: 'Cool' }); }); }); }Pero no funciona, ¿qué estoy haciendo mal?
Mi resultado principal es obtener el correo electrónico, pasarlo a la API de autenticación de firebase, enviar el correo electrónico y luego colocar un cuadro de diagnóstico más que diga "listo" básicamente. Pero la entrada no llega. ¿Por qué es esto?
Gracias por adelantado.
El resultado de Swal se almacenará en un objeto con el mismo nombre que defina en el parámetro pasado a la función 'then', en este caso, input . La dirección de correo electrónico se almacena en input.value . También eliminaría el parámetro de correo electrónico innecesario de la declaración de la función. Esto debería funcionar:
function resetPassword() { /* The following is for the alert dialog box that is triggered when the user presses forget password! */ Swal.fire({ title: 'Enter the email address', input: 'text', inputAttributes: { autocapitalize: 'off' }, showCancelButton: true, confirmButtonText: 'Send Reset Email', }).then(({value: input}) => { firebase.auth().sendPasswordResetEmail(input) .then(() => { Swal.fire({ title: 'Email Sent!', text: 'Check your email for a reset link!', type: 'success', confirmButtonText: 'Cool' }); }) .catch((error) => { Swal.fire({ title: 'Error!', text: error.message, type: 'error', confirmButtonText: 'Cool' }); }); }); }Gracias por su respuesta @Chris, pero después de que la suya no funcionó, fui a los documentos de SA2 y encontré una página de inicio de sesión, luego la modifiqué en gran medida a lo siguiente:
function resetPassword() { /* The following is for the alert dialog box that is triggered when the user presses forget password! */ Swal.fire({ title: 'Please Enter Your Email Address', html: `<input type="text" id="email" class="swal2-input" placeholder="mail@website.com">`, confirmButtonText: 'Sign in', focusConfirm: false, preConfirm: () => { const email = Swal.getPopup().querySelector('#email').value return { email: email } } }).then((result) => { firebase.auth().sendPasswordResetEmail(result.value.email) .then(() => { Swal.fire({ icon: 'success', title: 'Email Sent!', text: 'Check your email for a reset link!', type: 'success', confirmButtonText: 'Cool' }); }) .catch((error) => { Swal.fire({ title: 'Error!', text: error.message, type: 'error', confirmButtonText: 'Cool' }); }); }); }Sin embargo, gracias por su ayuda y la solución que estoy publicando ahora tomó mucho tiempo, por lo que aún lo apreciamos mucho.
¡Que tengas un lindo día!