【发布时间】:2021-12-04 10:55:30
【问题描述】:
import React, { useEffect } from "react";
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>
);
}
找不到变量:用户, 我也无法理解我是 react-native 和 react-navigation 的新手。我尝试了返回用户但没有划线或其他东西。
试过
const isLoggedIn = user;
console.log(isLoggedIn)
它只是记录未定义。 有人可以帮我吗?
我正在使用 firebase auth 和最新的 SDK、expo SDK 42、react navigation 6.x.x 当应用程序加载并且用户通过身份验证时,使用条件渲染隐藏 onBoarding、logIn 和 signUp 屏幕,因此他直接对welcomeScreen 进行操作
链接到世博小吃。在您的设备上运行它而不是在网络上。 https://snack.expo.dev/@bishalsaha/a638cf
【问题讨论】:
-
您正在从您自己的文件权限“./firebase”中导入身份验证,请分享该代码以便于识别问题
-
import * as firebase from "firebase"; const firebaseConfig = { apiKey: "AIzaSyA5nLMFvIitIBjwSJbAV0bNVYwPS_FwoyA", authDomain: "app-rupee.firebaseapp.com", projectId: "app-rupee", storageBucket: "app-rupee.appspot.com", messagingSenderId: "562775444152", appId: "1:562775444152:web:4c68256cf269be43d3c24d", measurementId: "G-E2M06JHH8M", }; let app; if (firebase.apps.length === 0) { app = firebase.initializeApp(firebaseConfig); } else { app = firebase.app(); } const auth = firebase.auth(); export { auth };
标签: firebase react-native firebase-authentication expo react-navigation