Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React-native google signin gives Developer Error

Tags:

I am trying Google login using React-native-google-signin plugin but it gives me a Developer_Error.I have done exctly same as mention in its document.here is my code ans steps.

1.Installed react-native-google-signin plugin using npm i react-native-google-signin. 2.Then have linked it with react-native link react-native-google-signin 3.After that i did setup of build.gradle file as they mention it in the documents.

    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'                 }         }     } 

4.Updated 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'  

5.Then generate SHA1 key using android studion debug.keystore and generate google-services.json file in firebase.

6.Then setting up login.js page like this.

    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,             });         }     } } 

These are my details so please someone help me on this i cannot find the appropriate solution online.and yes my SHA1 and clientID is correct i have cheked it already.

like image 733
Aniruddh Thakor Avatar asked Jan 29 '19 09:01

Aniruddh Thakor


People also ask

Is react native from Google?

React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.


2 Answers

I was trying keytool -exportcert -keystore ~/.android/debug.keystore -list -v which of course was giving me a SHA1 key but it was not working, after searching for a while I also look closer into my project/android/app folder and found that there is a debug.keystore key too (whose default password is android, in case some need to know ) so I tried cd android and keytool -exportcert -keystore app/debug.keystore -list -v command and the key I got, worked really well. I hope it will help.

like image 139
Uddesh Jain Avatar answered Oct 05 '22 14:10

Uddesh Jain


I had this problem too and trawled through many answers saying check your client Id and key hash, both of which I was positive were right.

The thing that got it working for me was I opened OAuth identities in the project management console (not Firebase) at https://console.cloud.google.com/apis/credentials and added an Android Oauth client Id with the correct signature (I did not have one of these there prior for some reason). Redownload the GoogleServices json file.

I also needed to set the webClientId to the "client_type": 3 Oauth client ID. It then worked.

like image 45
user37309 Avatar answered Oct 05 '22 14:10

user37309