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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With