Recibo este error la primera vez que abro la aplicación y llamo a la función de inicio de sesión. Sin embargo, funciona la segunda vez.
No se puede solicitar la autenticación hasta que la solicitud haya terminado de cargarse.
Aquí está mi código para iniciar sesión en Google:
import React, { useEffect, useState, createContext, useContext, useMemo } from "react" import * as Google from "expo-auth-session/providers/google" import * as WebBrowser from "expo-web-browser" import { GoogleAuthProvider, signInWithCredential, auth, onAuthStateChanged, signOut } from "../firebase" WebBrowser.maybeCompleteAuthSession() const config = { expoClientId: xxxx webClientId: xxxx iosClientId: xxxx androidClientId: xxxx } const AuthContext = createContext({}); export const AuthProvider = ({children}) => { const [user,setUser] = useState(null) const [error,setError] = useState(null) const [req, res, login] = Google.useAuthRequest(config) const [loading, setLoading] = useState(true) useEffect( () => onAuthStateChanged(auth, user => { setLoading(true) if (user) { setUser(user) setLoading(false) } else { setUser(null) } setLoading(false) }), [] ) const signInWithGoogle = () => { setLoading(true) login({ showInRecents: true }) .then(async response => { if (response && response.type === "success") { const { accessToken, idToken } = response.authentication const credential = GoogleAuthProvider.credential(idToken, accessToken) await signInWithCredential(auth, credential) setLoading(false) } }) .catch(error => console.error(error)) .finally(() => setLoading(false)) }No estoy muy seguro de lo que está pasando, pero funciona con un segundo clic. Mi firebase tampoco se conecta de forma predeterminada. Si inicio sesión y luego actualizo la aplicación, no obtengo información del usuario de forma predeterminada.