Intenté agregar la verificación de correo electrónico en mi sitio web de React, pero nada parece funcionar. Cuando inicio la función sendSignInLinkToEmail , devuelve este error:
XHRPOSThttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=XXXXXXXXXXXXXXXXXXXX [HTTP/3 400 Bad Request 455ms] { "error": { "code": 400, "message": "INVALID_CONTINUE_URI : Missing domain in continue url", "errors": [ { "message": "INVALID_CONTINUE_URI : Missing domain in continue url", "domain": "global", "reason": "invalid" } ] } }Código en cuestión:
export const registerWithEmailAndPassword = async (name, email, password) => { try { await sendSignInLinkToEmail(auth, email, actionCodeSettings) .then(() => { // The link was successfully sent. Inform the user. // Save the email locally so you don't need to ask the user for it again // if they open the link on the same device. window.localStorage.setItem("emailForSignIn", email); console.log("test"); // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // ... }); const res = await createUserWithEmailAndPassword(auth, email, password); const user = res.user; await addDoc(collection(db, "users"), { uid: user.uid, name, authProvider: "local", email, }); } catch (err) { console.error(err); alert(err.message); } };configuración de código de acción:
const actionCodeSettings = { // URL you want to redirect back to. The domain (www.example.com) for this // URL must be in the authorized domains list in the Firebase Console. url: "/", // This must be true. handleCodeInApp: true, iOS: { bundleId: "com.example.ios", }, android: { packageName: "com.example.android", installApp: true, minimumVersion: "12", }, //dynamicLinkDomain: "example.page.link", };El problema probablemente radica en actionCodeSettings, quiero que mi sitio web se redirija a la raíz después de realizar el registro. Por cierto, estoy alojando localmente este sitio web, no es público.
¡Gracias por adelantado!
El error significa :
La URL de continuación debe ser una cadena de URL válida.
Así que... tienes razón, / es una cadena de URL válida. Pero la respuesta "Falta el dominio en la URL de continuación" sugiere que debe ser una URL absoluta . Así que esto no es válido:
// URL you want to redirect back to. The domain (www.example.com) for this // URL must be in the authorized domains list in the Firebase Console. url: "/", Coloque allí la URL completa de su sitio web, incluidos http:// o https:// y el nombre de dominio. Y, como menciona el comentario, asegúrese de que esté autorizado en Firebase Console.