Tengo un proyecto de flujo de trabajo administrado de reacción nativa expo con configuración de backend de Firebase. En el emulador de Android, el inicio de sesión de Facebook y Google FUNCIONA con Firebase, sin embargo, cuando libero el apk (expo build: Android) aparece el siguiente error durante la redirección: "ESQUEMA DE URL DESCONOCIDO/PERSONALIZADO"
Uso los siguientes paquetes: Google con expo-auth-session Facebook con expo-facebook
Dado que funciona en el emulador, estoy bastante seguro de que mis secretos, ID y URL de redirección están bien, me redirige sin ningún problema. Firebase también creó el perfil de la nube de Google para mí, solo agregué los URI de redireccionamiento de Oauth válidos a mi configuración de ID WEB. Lo mismo para Facebook, se agregó la URL de redirección de Firebase, así como la de Expo.
Intenté agregar "scheme":"myapp" a app.json, pero no tuve suerte. No estoy seguro de qué hacer...
import {GoogleAuthProvider, FacebookAuthProvider, signInWithCredential} from 'firebase/auth'; import * as Facebook from 'expo-facebook'; import * as Google from 'expo-auth-session/providers/google'; import * as WebBrowser from 'expo-web-browser'; WebBrowser.maybeCompleteAuthSession(); //Google const [request, response, promptAsync] = Google.useIdTokenAuthRequest( { clientId: 'xxxxxxxxxxxxxxxxxxxx24u2l7k576m03n.apps.googleusercontent.com', redirectUriOptions: { // scheme: 'com.graphite.ekisallatkonyv', useProxy: true, }, }, ); React.useEffect(() => { if (response?.type === 'success') { const { id_token } = response.params; const credential = GoogleAuthProvider.credential(id_token); signInWithCredential(auth, credential) .then((result) => { addDefaultData(result.user.uid) }); } }, [response]); const google_login_ButtonClick = async() => { promptAsync({useProxy: true,showInRecents: true}) } const facebook_login = async() => { try { await Facebook.initializeAsync({ appId: FBAPPID, }); const { type, token } = await Facebook.logInWithReadPermissionsAsync({ permissions: ['public_profile', 'email'], }); if (type === 'success') { const credential = FacebookAuthProvider.credential(token) signInWithCredential(auth, credential) .then((result) => { addDefaultData(result.user.uid) }) } else { // type === 'cancel' } } catch ({ message }) { Alert.alert(`ERROR: ${message}`); } }Esto no tiene nada que ver con la aplicación, tuve un problema similar, pero para mí, funciona en la versión de compilación pero no en el emulador.
Estos son los pasos que seguí:
El inicio de sesión de Google nativo de React da un error de desarrollador