Expo SDK 48 破坏了 Firebase Auth

r3d*_*m4n 10 firebase react-native firebase-authentication expo

我刚刚升级到 Expo SDK 48,似乎每次刷新后我都会注销。我降级回 SDK 47,一切都按预期工作。我使用的是 firebase v9 (v9.17.1),是通过 expo install 安装的,而不是通过纱线安装的。

我升级到 Expo 48 时遵循的步骤:

  • 更新到最新版本的 EAS CLI:npm i -g eas-cli。
  • 安装新版本的Expo包:yarn add expo@^48.0.0
  • 升级所有依赖项以匹配 SDK 48:npx expo install --fix
  • 检查项目依赖项中是否存在任何可能的问题:npx expo-doctor
  • 升级到最新版本的firebase web sdk:expo install firebase
  • 删除节点模块,yarn.lock并重新安装所有内容

我缺少什么?

我在发行说明中找不到任何可以帮助我的内容。

che*_*ica 13

我想我发现了问题。Firebase 使用已弃用的 AsyncStorage 版本,该版本显然已在 SDK 48 中删除。

我能够用以下方法修复它(更多测试正在进行中):

import AsyncStorage from "@react-native-async-storage/async-storage";

import {getReactNativePersistence, initializeAuth} from 'firebase/auth/react-native';

initializeAuth(app, {
  persistence: getReactNativePersistence(AsyncStorage);
});
Run Code Online (Sandbox Code Playgroud)

通过该persistence节点,您可以告诉 Firebase 使用“本机”AsyncStorage,即当前 RN 应用程序中存在的 AsyncStorage。

  • Expo 没有删除 AsyncStorage.....RN 删除了。AsyncStorage 已被弃用一段时间了。我猜 SDK 48 中 RN 的升级终于将其删除了(好!不再有弃用警告!) (2认同)