react-native-google-signin / google-signin

Google Sign-in for your React Native applications
https://react-native-google-signin.github.io/
MIT License
3.12k stars 877 forks source link

Error during login: [TypeError: Cannot read property 'user' of undefined] #1282

Closed FloreaMaria closed 1 month ago

FloreaMaria commented 1 month ago

So I'm trying to use Google Sign In with Firebase This is my code:

` GoogleSignin.configure({ androidClientId: "myAndroidCliendId", });

export async function googleSignIn() { try { await GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true }); const { idToken, accessToken } = await GoogleSignin.signIn({ prompt: "select_account", }); const googleCredential = auth.GoogleAuthProvider.credential(idToken, accessToken); const userSignIn = await auth().signInWithCredential(googleCredential);

return userSignIn;

} catch (error) { console.log("Error during login (function):", error); } }`

This is my Login Screen: `import { TouchableOpacity, StyleSheet, View, Text, Image } from "react-native"; import React, { useContext, useState } from "react";

import { AuthContext } from "../contexts/AuthProvider"; import { storeUserData, fetchUserData } from "../firebase/users"; import { googleSignIn } from "../firebase/googleSignIn"; import LoadingOverlay from "../components/LoadingOverlay"; import SignInAnonymously from "../components/SignInAnonymously";

function SignInScreen() { const [isFetching, setIsFetching] = useState(false); const authContext = useContext(AuthContext);

async function onGoogleButtonPress() { try { setIsFetching(true); const userSignIn = await googleSignIn();

  console.log(userSignIn)
  const userData = {
    uid: userSignIn.user.uid,
    role: "guest",
    name: userSignIn.user.displayName,
    picture: userSignIn.user.photoURL,
    email: userSignIn.user.email,
    isOnline: false,
    chatRooms: [],
  };
  console.log("User data", userData);

  if (userSignIn.additionalUserInfo.isNewUser === true) {
    console.log("New user");
    authContext.setUser(userData);
    await storeUserData(userData);
  } else {
    authContext.setUser(useData);
    const useData = await fetchUserData(userSignIn.user.uid);
  }

  setIsFetching(false);
} catch (error) {
  setIsFetching(false);
  console.log("Error during login:", error);
}

} if (isFetching === true) return ;

return (

Sign in with Google
</View>

); }

const styles = StyleSheet.create({

container: { flex: 1, backgroundColor: "whitesmoke", alignItems: "center", }, signInContainer: { marginTop: 30, alignItems: "center", }, button: { // backgroundColor: 'white', padding: 10, borderRadius: 5, marginTop: 50, }, buttonText: { fontSize: 25, fontFamily: "Arial", // fontWeight: "bold", }, });

export default SignInScreen; `

I get:

LOG Error during login (function): [Error: DEVELOPER_ERROR] LOG undefined LOG Error during login: [TypeError: Cannot read property 'user' of undefined]

Environment

"react": "18.2.0",
"react-native": "0.74.1",
"@react-native-firebase/app": "^19.2.2",
"@react-native-firebase/auth": "^19.2.2",
"@react-native-firebase/firestore": "^19.2.2",
"@react-native-google-signin/google-signin": "^11.0.1",
"Android Emulator" : Pixel_3a_API_34_extension_level_7_x86_64

Please help!

vonovak commented 1 month ago

Hello and thanks for asking, please read more here https://react-native-google-signin.github.io/docs/troubleshooting#developer_error-or-code-10-or-developer-console-is-not-set-up-correctly-error-message Thank you 🙂