首页 > 解决方案 > Firebase Firestore 与 Expo v37

问题描述

您好我正在使用 Expo v37 和 Firebase SDK v7.9.0

我的导入看起来像这样:

import * as firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';
import { YellowBox } from 'react-native';
import config from '~/config';

firebase.initializeApp(
  {
    apiKey: config.firebaseApiKey,
    authDomain: config.firebaseAuthDomain,
    databaseURL: config.firebaseDatabaseURL,
    projectId: config.firebaseProjectId,
    storageBucket: config.firebaseStorageBucket,
    messagingSenderId: config.firebaseMessagingSenderId,
    appId: config.firebaseAppId,
    measurementId: config.firebaseMeasurementId,
  },
);

export default firebase;
export const database = firebase.firestore();

尝试使用 firestore 模块时收到以下错误:

TypeError: firebase.INTERNAL.registerService is not a function. (In 'firebase.INTERNAL.registerService('firestore', function (app) {
      return new Firestore(app);
    }, shallowCopy(firestoreNamespace))', 'firebase.INTERNAL.registerService' is undefined)

Query.prototype.validateDisjunctiveFilterElements
    index.cjs.js:21630:9
registerFirestore
    App.bundle?platform=ios&dev=true&minify=false&hot=false:179870:25
<unknown>
    App.bundle?platform=ios&dev=true&minify=false&hot=false:179873:20
loadModuleImplementation
    require.js:322:6
verb
    tslib.js:196:33
loadModuleImplementation
    require.js:322:6
<unknown>
    App.bundle?platform=ios&dev=true&minify=false&hot=false:155308:14
loadModuleImplementation
    require.js:322:6
<unknown>
    App.bundle?platform=ios&dev=true&minify=false&hot=false:138892:53
loadModuleImplementation
    require.js:322:6
<unknown>
    App.bundle?platform=ios&dev=true&minify=false&hot=false:133762:26
loadModuleImplementation
    require.js:322:6
<global>
    App.js:6
loadModuleImplementation
    require.js:322:6
guardedLoadModule
    require.js:201:45
downloadUrlHandler
    index.cjs.js:1515:5

如果我删除 firestore 导入,一切正常。

这是 Expo 或 Firebase SDK 的错误吗?有人有 Firestore 与 Expo 37 合作吗?

标签: firebasereact-nativegoogle-cloud-firestoreexpo

解决方案


使用 Yarn 安装节点模块似乎可以解决这个问题......


推荐阅读