所以我正在建立一个使用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

根据文档,我们可以将持久器设置为不同的模式,默认为本地,然后我将持久器设置为本地,但不工作.

我希望用户即使在应用程序重新加载后仍保持其状态,因为用户保存在异步存储中

推荐答案

我自己找到了一个解决方案,Firebase 10.0.0不能正常工作,升级到10.1.0就可以了

Javascript相关问答推荐

Snowflake - .toISOString()错误地舍入JS存储过程中的时间戳

为什么在react js中没有调用加载器函数?

我的YouTube视频没有以html形式显示,以获取免费加密信号

在时间轴完整日历中显示日期标题

仅圆角的甜甜圈图表

将状态向下传递给映射的子元素

Msgraph用户邀请自定义邮箱模板

jQuery s data()[storage object]在vanilla JavaScript中?'

当点击注册页面上的注册按钮时,邮箱重复

查找最长的子序列-无法重置数组

如何在Vue 3中创建自定义 Select 组件,并将选项作为HTML而不是props 传递?

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

使用ThreeJ渲染的形状具有抖动/模糊的边缘

在运行时使用Next JS App Router在服务器组件中运行自定义函数

是什么导致了这种奇怪的水平间距错误(?)当通过JavaScript将列表项元素追加到无序列表时,是否在按钮之间?

当输入字段无效时,我的应用程序不会返回错误

在我的index.html页面上找不到我的Java脚本条形图

如何在JAVASCRIPT中合并两组对象并返回一些键

是否可以在不更改组件标识的情况下换出Reaction组件定义(以维护状态/引用等)?如果是这样的话,是如何做到的呢?

自动滚动功能在当前图像左侧显示上一张图像的一部分