找不到变量:Firebase/React Native 上的 IDBIndex(博览会)

per*_*kle 10 firebase react-native

我正在 Expo 中开发一个 RN 应用程序,以 firebase 作为后端。到目前为止,该应用程序仅使用 firebase auth 和 firestore,无论出于何种原因,我随机开始收到ReferenceError: Can't find variable: IDBIndex. 我调整了我的 firebase 配置以适应 v9 标准,而不是使用该compat包。我确保我的应用程序没有使用 Google Analytics。我还降级到 firebase@9.1.0 ,它与博览会文档和其他类似的帖子相匹配。当应用程序运行时,我也将 git 恢复到应用程序的早期版本(具有早期的依赖项和代码),但仍然返回相同的错误。发生这种情况时,我完全重新安装了 node 和 npm,因为我认为这是发生这种情况的唯一可能的原因,但这也无济于事(得到相同的 IDB 错误)。我仍然认为这是一个与 firebase 相关的问题,但我几乎不知道它可能是什么。

这是我的 firebase 配置:

import { initializeApp } from 'firebase/app'
import { getAuth, connectAuthEmulator } from "firebase/auth";
import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

import {
  FIREBASE_API_KEY,
  FIREBASE_AUTH_DOMAIN,
  FIREBASE_PROJECT_ID,
  FIREBASE_STORAGE_BUCKET,
  FIREBASE_MESSAGING_SENDER_ID,
  FIREBASE_APP_ID,
  FIREBASE_MEASUREMENT_ID,
} from '@env';

const firebaseConfig = {
  apiKey: FIREBASE_API_KEY,
  authDomain: FIREBASE_AUTH_DOMAIN,
  projectId: FIREBASE_PROJECT_ID,
  storageBucket: FIREBASE_STORAGE_BUCKET,
  messagingSenderId: FIREBASE_MESSAGING_SENDER_ID,
  appId: FIREBASE_APP_ID,
  measurementId: FIREBASE_MEASUREMENT_ID,
};

const app = initializeApp(firebaseConfig);

export default app;
export const auth = getAuth(app);
export const firestore = getFirestore(app);

if (process.env.NODE_ENV === "development") {
    connectAuthEmulator(auth, "http://localhost:9099");
    connectFirestoreEmulator(firestore, "localhost", 8080);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要查看更多文件或需要了解更多详细信息,请告诉我。

Fra*_*len 14

火力战士在这里

我们的 JavaScript SDK 存在问题,Firebase 安装服务使用的 IDB 版本不支持浏览器环境之外的 ESM。该问题已在JavaScript SDK 9.6.9 版本中修复,因此请务必更新。


Ten*_*ter 8

我遇到了同样的问题,看起来"firebase": "^9.6.8",几天前发布的问题已经出现了。使用"firebase": "9.6.7",

  • 您是否尝试过不带插入符号的上述版本?````“firebase”:“9.6.7”```` (2认同)

per*_*kle 1

该线程中提到的其他修复肯定都是有效的(我已经看到其他论坛帖子建议 firebase 降级,但就我而言,它不起作用。)

我认为这对我确认是什么解决了我的案例中的问题可能有帮助。npm当我的一位团队成员使用而不是expo(默认为yarn)来安装依赖项时,出现了问题。yarn.lock这导致了和之间的同步问题package-lock.json。仅此一点不会造成太大问题,因为简单的yarnoryarn install <dependency>就可以解决问题。然而,这种依赖关系恰好需要预先存在的依赖关系,这些依赖关系的版本与我的博览会版本“预期”的版本不同。这个IDBIndex错误是如何触发的对我来说仍然是个谜,但最终我所要做的就是删除所有锁定文件,然后node_modules执行expo update并最终重新yarn安装所有现在兼容的软件包。

如果任何人偶然发现这个答案都可以给出一个可能的解释来解释为什么这个问题是固定的,那将不胜感激。