This is how my App.js looks:
// App.js
import React, { useEffect, useState } from 'react';
import { NavigationContainer, DefaultTheme } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import colors from './colors';
import HomeScreen from './screens/HomeScreen';
import CompleteTaskScreen from './screens/CompleteTaskScreen';
import TaskScreen from './screens/TaskScreen';
import LoginScreen from './screens/LoginScreen';
import firebase from 'firebase/app';
import { FIREBASE_AUTH } from './firebase';
import { onAuthStateChanged } from 'firebase/auth';
const Stack = createStackNavigator();
const InsideStack = createStackNavigator();
function postLogin() {
<InsideStack.Navigator>
<InsideStack.Screen name="Home" component={HomeScreen} />
<InsideStack.Screen name="Task" component={TaskScreen} />
<InsideStack.Screen name="CompleteTask" component={CompleteTaskScreen} />
</InsideStack.Navigator>
}
const MyTheme = {
...DefaultTheme,
colors: {
...DefaultTheme.colors,
primary: colors.primary,
background: colors.background,
card: colors.primary,
text: colors.text,
border: colors.border,
},
};
export default function App() {
const [user, setUser] = useState<firebase.User | null>(null);
useEffect(() => {
const unsubscribe = FIREBASE_AUTH.onAuthStateChanged((user) => {
setUser(user);
});
// Cleanup subscription on unmount
return () => unsubscribe();
}, []);
return (
<NavigationContainer theme={MyTheme}>
<Stack.Navigator initialRouteName="Login">
{user? (
<Stack.Screen name="Inside" component={InsideStack} options={{headerShown: false}} />
) : (
<Stack.Screen name="Login" component={LoginScreen} />
)}
</Stack.Navigator>
</NavigationContainer>
);
}
TypeError: Cannot read properties of undefined (reading 'User')
Completely new to expo, firebase etc. Also using firebase ^10.12.2
I wanted to try to set up firebase authentication to login and sign up user. It works without the useEffect() piece of code but it doesn’t work when that code is added, I wanted to know/understand why?
New contributor
user25375140 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.