无法在“firebase@10.1.0”中导入“getReactNativePersistence”

Keu*_*ark 7 javascript firebase typescript react-native

我无法getReactNativePersistencefirebase/auth. 我正在使用打字稿。

可以导入下面的函数,但是当我将 Firebase SDK 从 更新9.22.010.1.0.

import { getReactNativePersistence } from "firebase/auth/react-native";
Run Code Online (Sandbox Code Playgroud)

好像已经没有了firebase/auth/react-native

我还尝试了以下代码,如文档所示,

import { getReactNativePersistence } from "firebase/auth";
Run Code Online (Sandbox Code Playgroud)

但它会抛出一个错误。

Module '"firebase/auth"' has no exported member 'getReactNativePersistence'.
Run Code Online (Sandbox Code Playgroud)

我使用的是 Expo,它默认使用 Metro。

这是我的metro.config.js

// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require('expo/metro-config');

module.exports = getDefaultConfig(__dirname);
Run Code Online (Sandbox Code Playgroud)

我怎样才能getReactNativePersistence导入firebase@10.1.0

Ola*_*ayi 33

{
  "compilerOptions": {
    "paths": {
      "@firebase/auth": ["./node_modules/@firebase/auth/dist/index.rn.d.ts"]
    }
  },
  "extends": "expo/tsconfig.base"
}
Run Code Online (Sandbox Code Playgroud)

显然,这是一个打字稿问题。将上面的代码添加到您的 tsconfig.json 文件中。这个修复对我有用。


小智 10

我有同样的问题。临时解决方案是使用强制类型转换。

import * as firebaseAuth from 'firebase/auth';
        
    const reactNativePersistence = (firebaseAuth as any).getReactNativePersistence;
        
            // initialize auth
      export const auth = initializeAuth(app, {
          persistence: reactNativePersistence(AsyncStorage),
        });
Run Code Online (Sandbox Code Playgroud)