Error during login: [TypeError: Cannot read property 'user' of undefined]
Closed this issue · 1 comments
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 (
<View style={styles.signInContainer}>
<SignInAnonymously />
<TouchableOpacity style={styles.button} onPress={onGoogleButtonPress}>
<View style={{ flexDirection: "row" }}>
<Text style={styles.buttonText}>Sign in with </Text>
<Text style={[styles.buttonText, { color: "#2191FB" }]}>Google</Text>
</View>
</TouchableOpacity>
</View>
</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!
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 🙂