所以我正在建立一个使用EXPO REACT Native和FireBase的移动应用程序,我有一个问题,当前用户不阻止数据.以下是一些代码片段:
App.js:
import { AuthContextProvider } from "./context/AuthContext";
import MainNavigator from "./screens/MainNavigator";
export default function App() {
return (
<AuthContextProvider>
<MainNavigator />
</AuthContextProvider>
);
}
AuthConext.js:
import React from "react";
import { onAuthStateChanged, getAuth } from "firebase/auth";
import firebase_app from "../firebase/config";
const auth = getAuth(firebase_app);
import { Text } from "react-native";
export const AuthContext = React.createContext({});
export const useAuthContext = () => React.useContext(AuthContext);
export const AuthContextProvider = ({ children }) => {
const [user, setUser] = React.useState(null);
const [loading, setLoading] = React.useState(true);
React.useEffect(() => {
const unsubscribe = onAuthStateChanged(auth, (user) => {
if (user) {
setUser(user);
} else {
setUser(null);
}
setLoading(false);
});
return () => unsubscribe();
}, []);
return (
<AuthContext.Provider value={{ user }}>
{loading ? <Text>Loading...</Text> : children}
</AuthContext.Provider>
);
};
我访问用户的方式:
const { user } = useAuthContext();
useEffect(() => {
console.log(user);
}, []);
此用户在我登录后持续存在,但只要我重新加载或重新打开应用程序,该用户就为空
FireBase版本:10.0.0
根据文档,我们可以将持久器设置为不同的模式,默认为本地,然后我将持久器设置为本地,但不工作.
我希望用户即使在应用程序重新加载后仍保持其状态,因为用户保存在异步存储中