How to Authenticate with Google using Firebase in React Native Application ?
In this article, we will discuss how can we authenticate with Google using Firebase in React Native.
Creating React Application And Installing Module
Create a React app using the following command:
npx react-native@latest init AwesomeProject
Project Structure
Now install required npm packages:
npm i @react-native-google-signin/google-signin
npm install --save @react-native-firebase/app
Setup Your Project on Firebase
- Enter the required detail for setup project you can find package name in your project Android folder to generate
- SHA key run the following command from your project android folder ./gradlew signingReport
- download the google.config.file and follow the instructions mention on firebase to add firebase SDK
- Go to authentication section on your firebase console and enable google sign in
- Adding google auth code to your project:
Example:
Javascript
import { Image, StyleSheet, Text, TouchableOpacity, View, Pressable } from 'react-native' import React, { useEffect, useState } from 'react' import { GoogleSignin, statusCodes } from '@react-native-google-signin/google-signin' ; import auth from '@react-native-firebase/auth' ; const App = () => { useEffect(() => { GoogleSignin.configure({ // Client ID of type WEB for your server (needed // to verify user ID and offline access) webClientId: '' , }); }, []) const signIn = async () => { try { await GoogleSignin.hasPlayServices(); const userInfo = await GoogleSignin.signIn(); await GoogleSignin.revokeAccess(); console.warn(userInfo.user) } catch (error) { if (error.code === statusCodes.SIGN_IN_CANCELLED) { // user cancelled the login flow } else if (error.code === statusCodes.IN_PROGRESS) { console.log(error) } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) { console.log(error) } else { console.log(error) } } }; return ( <View style={styles.container}> <Pressable style={styles.signupbutton} onPress={() => { signIn(), console.log( 'click' ) }}> <Image style={{ width: 30, height: 30, }} source={require( '../../assets/search.png' )}> </Image> </Pressable> </View> ) } export default App const styles = StyleSheet.create({ container: { justifyContent: 'center' , flex: 1, paddingHorizontal: 15, backgroundColor: '#1f1f1f' , alignItems: 'center' , }, signupbutton: { justifyContent: 'center' , backgroundColor: 'pink' , width: 300, height: 46, borderRadius: 15, marginTop: 25, alignItems: 'center' , }, }) |
- Replace your web client id with id given on your firebase project you can get web client id by
- Go to ->Firebase console-> Authentecation-> google ->web client id:
GoogleSignin.configure({
webClientId: 'Your client id', // Paste that web client id here
});
- Run your react native app by command:
npm start
Output:
Contact Us