Firebase V9 - React Native 应用程序上的“内部断言失败:需要类定义”

问题描述 投票:0回答:2

我正在使用 V9 SDK 开发一个带有 firebase 身份验证的 React Native 应用程序。一切都工作正常,除了当我想在身份验证中添加持久性时。

我尝试了多种方法来添加它,但没有一个起作用。下面是我尝试过的最新、最干净的方法。问题是,当我使用此代码(添加持久性,否则它工作正常)时,我遇到错误:

内部断言失败:需要类定义

// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAuth, browserLocalPersistence, setPersistence } from "firebase/auth";
import { getFirestore } from "firebase/firestore";

// Your web app's Firebase configuration
const firebaseConfig = {
  apiKey: "XXX",
  authDomain: "XXX",
  projectId: "XXX",
  storageBucket: "XXX",
  messagingSenderId: "XXX",
  appId: "XXX",
  measurementId: "XXX",
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);

export const auth = getAuth(app);

// Enable Firebase persistence
const enableFirebasePersistence = async () => {
  try {
    await setPersistence(auth, browserLocalPersistence);
  } catch (error) {
    // Handle errors here
    console.log("Error enabling Firebase persistence:", error);
  }
};

// Call the function to enable persistence
enableFirebasePersistence();

export const db = getFirestore(app);
export default app;

javascript firebase react-native firebase-authentication expo
2个回答
1
投票

我刚刚在另一篇文章中找到了答案,尝试了数千个不同的关键字哈哈。

看来问题出在新版本的expo上。在初始化 firebase 时使用 AsyncStorage 对我有用。这是我找到解决方案的帖子的链接:onAuthStateChanged now returns null in react-native


0
投票

这里是链接到的答案franjuju的摘要,因为您可能会为

setPersistence
调用它:

import { getReactNativePersistence, setPersistence } from 'firebase/auth';
import ReactNativeAsyncStorage from '@react-native-async-storage/async-storage';

const localPersistence = getReactNativePersistence(ReactNativeAsyncStorage);
...
export const auth = getAuth(app);
setPersistence(auth, localPersistence);
© www.soinside.com 2019 - 2024. All rights reserved.