No estoy familiarizado con Javascript y me pregunto cómo puede un botón llamar a una función, más específicamente la nueva sintaxis signInWithPopup de Firebase introducida en la versión 9.0.0+. Quiero mostrar la autenticación para iniciar sesión con Google cuando el usuario haga clic en el botón. A menos que esté leyendo mal https://firebase.google.com/docs/auth/web/google-signin#web-version-9_4 y el código que proporcionaron esté incompleto. (Tengo todo el código de requisitos previos: imports, consts, etc).
signInWithPopup(auth, provider) .then((result) => { const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; const user = result.user; }).catch((error) => { const errorCode = error.code; const errorMessage = error.message; const email = error.email; const credential = GoogleAuthProvider.credentialFromError(error); });He intentado
<button onClick='signInWithPopup()'>Sign In With Google</button>y
<button onClick={signInWithPopup()}>Sign In With Google</button>Todos mis intentos dieron como resultado un botón que solo hace clic y no hace nada.
Editar: Ah, tuve que agregar los parámetros autenticación y proveedor.
Intente envolver signInWithPopUp de Firebase en su propia función como se muestra a continuación:
import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth"; const auth = getAuth(app) // import auth instance const googleSignIn = async () => { try { const provider = new GoogleAuthProvider(); const result = await signInWithPopup(auth, provider) const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; console.log(credential) } catch (e) { console.log(e.code, e.message) } } <button onClick={googleSignIn}>Sign In With Google</button> // use that function ^