import { StyleSheet, Text, View } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import LoginScreen from "./screens/LoginScreen";
import SignUpScreen from "./screens/SignUpScreen";
import WelcomeScreen from "./screens/WelcomeScreen";
import OnBoard from "./screens/Onboard";
import GetStarted from "./screens/GetStarted";
import { auth } from "./firebase";
const Stack = createNativeStackNavigator();
export default function App() {
useEffect(() => {
const unsubscribe = auth.onAuthStateChanged((user) => {
console.log(user);
return user;
});
return unsubscribe;
}, []);
return (
<NavigationContainer>
<Stack.Navigator>
{user ? (
<>
<Stack.Screen
options={{ headerShown: false }}
name="OnBoard"
component={OnBoard}
/>
<Stack.Screen
options={{ headerShown: false }}
name="SignUp"
component={SignUpScreen}
/>
<Stack.Screen
options={{ headerShown: false }}
name="Login"
component={LoginScreen}
/>
</>
) : (
<Stack.Screen
options={{ headerShown: false }}
name="Welcome"
component={WelcomeScreen}
/>
)}
</Stack.Navigator>
</NavigationContainer>
);
}
can't find variable :user, I can't understand also I am new to react-native and react-navigation. I tried returning user but unlined or something.
tried
const isLoggedIn = user;
console.log(isLoggedIn)
It just logs undefined. Anyone can help me with it?
I am using firebase auth and the latest SDK, expo SDK 42, react navigation 6.x.x Using condition rendering for the to hide the onBoarding, logIn and signUp screen when the app loads and the user is authenticated so he directly does to welcomeScreen
Link to the expo snack. Run it in your device not on the web. https://snack.expo.dev/@bishalsaha/a638cf