- Установлен плагин реагирования-native-google-signin с помощью npm, я реагирую-native-google- команда входа.
- Затем я связал ее с помощью ссылки на реагирование на реакцию-native-google-signin
- После этого я настроил файл build.gradle, как указано в документации.
Код: Выделить всё
ext { buildToolsVersion = "27.0.3" minSdkVersion = 16 compileSdkVersion = 27 targetSdkVersion = 26 supportLibVersion = "27.1.1" googlePlayServicesAuthVersion = "15.0.1" } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.google.gms:google-services:3.2.1' } allprojects { repositories { mavenLocal() google() maven {url "https://maven.google.com"} jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } maven { url 'https://maven.google.com/' name 'Google' } } } - Обновлен android/app/build.gradle
Код: Выделить всё
dependencies { implementation 'com.facebook.android:facebook-android-sdk:4.34.0' implementation project(':react-native-fbsdk') compile project(':react-native-vector-icons') compile project(':react-native-fused-location') compile project(':react-native-fs') compile project(':react-native-image-resizer') compile project(':react-native-geocoder') compile project(':react-native-device-info') compile project(':react-native-image-picker') compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" compile "com.facebook.react:react-native:+" // From node_modules implementation project(":react-native-google-signin") compile (project(':react-native-maps')){ exclude group: "com.google.android.gms" } implementation 'com.google.android.gms:play-services-auth:15.0.1' implementation 'com.google.android.gms:play-services-maps:15.0.1' implementation 'com.google.android.gms:play-services-location:15.0.1' implementation 'com.google.android.gms:play-services-base:15.0.1' } task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs' } apply plugin: 'com.google.gms.google-services' - Затем сгенерирован ключ SHA1 с помощью Android Studio debug.keystore и создан файл google-services.json в консоли Firebase.
- Затем я настроил страницу login.js следующим образом:
Код: Выделить всё
async componentDidMount() { this._configureGoogleSignIn(); } _configureGoogleSignIn() { GoogleSignin.configure({ webClientId: '775060548127-5nfj43q15l75va9pfav2jettkha7hm2a.apps.googleusercontent.com',// my clientID offlineAccess: false }); } async GoogleSignin() { try { await GoogleSignin.hasPlayServices(); const userInfo = await GoogleSignin.signIn(); // this.setState({ userInfo, error: null }); Alert.alert("success:" + JSON.stringify(userInfo)); } catch (error) { if (error.code === statusCodes.SIGN_IN_CANCELLED) { // sign in was cancelled Alert.alert('cancelled'); } else if (error.code === statusCodes.IN_PROGRESS) { // operation in progress already Alert.alert('in progress'); } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) { Alert.alert('play services not available or outdated'); } else { Alert.alert('Something went wrong', error.toString()); this.setState({ error, }); } }
Подробнее здесь: https://stackoverflow.com/questions/544 ... oper-error