【问题标题】:Attempted import error: 'firestore' is not exported from 'firebase/app' (imported as 'firebase') [duplicate]尝试导入错误:“firestore”未从“firebase/app”导出(导入为“firebase”)[重复]
【发布时间】:2021-11-18 04:15:23
【问题描述】:

所以我遇到了这段代码的问题。我安装了“npm install firebase”我尝试了其他方法,我觉得这可能是解决这个问题的一个简单技巧,但我需要一些帮助。有谁知道是什么问题?

我仍然收到此错误

尝试导入错误:“firestore”未从“firebase/app”导出(导入为“firebase”)


import * as firebase from 'firebase/app';
import 'firebase/storage';
import 'firebase/firestore';

var firebaseConfig = {
  apiKey: "AIzaSyBWEyocjrQCjoENYbkKIbVe_2D9bXPe8XA",
  authDomain: "sahm-5a4a0.firebaseapp.com",
  projectId: "sahm-5a4a0",
  storageBucket: "sahm-5a4a0.appspot.com",
  messagingSenderId: "1010829019707",
  appId: "1:1010829019707:web:fb166e26f7f3ac66972a1e",
  measurementId: "G-X27Q0GCH8X"
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);

const projectStorage = firebase.storage();
const projectFirestore = firebase.firestore();
const timestamp = firebase.firestore.FieldValue.serverTimestamp;

export { projectStorage, projectFirestore, timestamp };

【问题讨论】:

标签: reactjs firebase firebase-realtime-database google-cloud-firestore


【解决方案1】:

重大变化:package.json 文件中的浏览器字段现在指向 ESM 包而不是 CJS 包。使用 ESM 导入的用户现在必须使用默认导入而不是命名空间导入。

8.0.0 之前

import * as firebase from 'firebase/app'

8.0.0 之后

import firebase from 'firebase/app'

使用 require('firebase/app') 或 require('firebase') 的代码仍然可以工作,但为了获得正确的类型(例如代码完成),用户应该将这些 require 调用更改为 require(' firebase/app').default 或 require('firebase').default。这是因为 SDK 现在对 ESM 包使用类型,并且不同的包共享一个类型文件。

因此,您将不得不使用新的 ESM 捆绑包默认导出:

import firebase from "firebase/app"
firebase.initializeApp({ ... })

【讨论】:

    【解决方案2】:

    经过一整天的压力和更多研究,我找到了解决问题的方法。所以如果有人遇到这个问题。

    npm install firebase@7.16.1
    

    【讨论】:

    • 或者您可以使用最新的 v9+ 并导入为 import firebase from "firebase/compat/app"... 只需在所有正在导入的服务中添加 /compat/
    • 谢谢!我一定会的,下次记住这一点!
    猜你喜欢
    • 2021-02-13
    • 2021-02-09
    • 2021-10-26
    • 2021-06-27
    • 2021-10-26
    • 2021-10-26
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多