import React, { useEffect, useState } from 'react'; import { Pressable, StyleSheet, ActivityIndicator, Alert } from 'react-native'; import { ThemedText } from '@/components/ThemedText'; import { GoogleSignin, GoogleSigninButton, statusCodes, User } from '@react-native-google-signin/google-signin'; import auth from '@react-native-firebase/auth'; export default function GoogleSignInSection() { const [loading, setLoading] = useState(false); const [firebaseUser, setFirebaseUser] = useState(); useEffect(() => { GoogleSignin.configure({ webClientId: 'YOUR_WEB_CLIENT_ID' }); const checkSignInStatus = async () => { try { const userInfo = await GoogleSignin.signInSilently(); if (userInfo) setFirebaseUser(userInfo.data); } catch (error) { console.error('Google Sign-In check failed', error); } }; checkSignInStatus(); }, []); const signIn = async () => { try { setLoading(true); const userInfo = await GoogleSignin.signIn(); setFirebaseUser(userInfo.data); } catch (error:any) { if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) { Alert.alert('Error', 'Google Play Services unavailable.'); } else { Alert.alert('Error', 'Something went wrong.'); } } finally { setLoading(false); } }; return ( <> {firebaseUser ? ( GoogleSignin.signOut()} style={styles.button}> Logout ) : ( )} ); } const styles = StyleSheet.create({ button: { backgroundColor: '#007bff', padding: 12, borderRadius: 8 }, text: { color: '#fff', textAlign: 'center' }, googleButton: { width: '100%', height: 48 }, });