Я пытаюсь использовать «реагировать на собственный вход в Google». В Android это не удалось. Я использую Firebase. На нее можно нажать (кнопка входа в Google), а затем можно ввести текст идентификатора, но после завершения процесса входа он не переходит на следующую страницу.
Я получил сообщение об ошибке разработчика.
ПРЕДУПРЕЖДЕНИЕ Возможное необработанное отклонение обещания (id: 0): Ошибка: DEVELOPER_ERROR PromiseMethodWrapper@http://10.0.2.2:8081/index.bundle?platf ... ?platform= android&dev=true&minify=false&app=com.lovedog&modulesOnly=false&runModule=true:123365:45 генераторResume@[собственный код] asyncGeneratorStep@http://10.0.2.2:8081/index.bundle?platf ... e:28377:26 _next@http://10.0.2.2:8081/index.bundle?platf ... e:28396:29 tryCallOne@http://10.0.2.2:8081/index.bundle?platf ... ?platform= android&dev=true&minify=false&app=com.lovedog&modulesOnly=false&runModule=true
1. Идентификатор клиента: я использовал тип 3 — в клиенте oauth. 2. Я создал новый инструмент для ключей и использовал из него SHA-1, SHA-256, а затем повторно загрузил файл google-service.json. а потом я даже не знаю, что мне нужно попробовать. не могли бы вы дать мне несколько советов, плз?
/android/build.gradle
// Файл сборки верхнего уровня, куда вы можете добавить параметры конфигурации, общие для всех подпроектов/модулей. сценарий сборки { доб. { buildToolsVersion = "33.0.0" минСдкВерсион = 21 компиляцияSdkVersion = 33 targetSdkVersion = 33 // Мы используем NDK 23, который поддерживает как M1, так и параллельную версию NDK из AGP. ndkVersion = "23.1.7779620" googlePlayServicesAuthVersion = "19.2.0" } репозитории { Google() mavenCentral() } зависимости { путь к классам("com.android.tools.build:gradle") classpath("com.facebook.react:реагировать-родной-gradle-плагин") путь к классам 'com.google.gms:google-services:4.3.15' } } Я написал такой код.
/* eslint-disable response-native/no-inline-styles */ импортировать React, {useCallback} из «реагировать»; импортировать {View} из «реагировать-родного»; импортировать {Header} из '../comComponents/Header/Header'; импортировать {useRootNavigation} из '../navigation/RootStackNavigation'; Импортировать { GoogleВойти, Кнопка входа в Google, } из '@react-native-google-signin/google-signin'; импортировать {useSafeAreaInsets} из «реагировать-родного-безопасного-областного-контекста»; импортировать аутентификацию из @react-native-firebase/auth; экспортировать const IntroScreen: React.FC = () => { const rootNavigation = useRootNavigation(); const SafeArea = useSafeAreaInsets(); const onPressGoogleSignin = useCallback(async () => { пытаться { const isSignIn = ожидание GoogleSignin.isSignedIn(); если (isSignIn) { дождитесь GoogleSignin.signOut(); } const result = await GoogleSignin.signIn({}); const googleCredential = auth.GoogleAuthProvider.credential( результат.idToken, ); const authResult = await auth().signInWithCredential(googleCredential); rootNavigation.push('Регистрация', { экран: 'InputEmail', параметры: { предввод: { электронная почта: result.user.email, имя: результат.пользователь.имя ?? 'Неизвестный', ProfileImage: result.user.photo ?? '', }, uid: authResult.user.uid, }, }); } поймать (ошибка) { // 여기서 예외를 처리하십시오. console.error('Ошибка входа в Google:', error); // 예외 처리 로직을 추가하세요. } }, [корневая навигация]); возвращаться ( ); };