Node.js TypeError:firebase.default.initializeApp不是函数
我正在使用firebase进行我的web项目。 特别是在服务器端。我跟着官方的医生 它说Node.js TypeError:firebase.default.initializeApp不是函数,node.js,firebase,Node.js,Firebase,我正在使用firebase进行我的web项目。 特别是在服务器端。我跟着官方的医生 它说 // Firebase App (the core Firebase SDK) is always required and // must be listed before other Firebase SDKs import * as firebase from "firebase/app"; // Add the Firebase services that you want
// Firebase App (the core Firebase SDK) is always required and
// must be listed before other Firebase SDKs
import * as firebase from "firebase/app";
// Add the Firebase services that you want to use
import "firebase/auth";
import "firebase/firestore";
及
但它不起作用。所以我只是尝试随机搜索
只有它起作用了
import firebase from "@firebase/app"
import "@firebase/auth"
import "@firebase/firestore"
...
firebase.default.initializeApp(firebaseConfig)
我的环境就是这样
➜ firestore-test node --version
v14.7.0
➜ firestore-test firebase --version
8.6.0
➜ firestore-test npm --version
6.14.7
为什么官方的介绍不起作用?
我假设文档是旧的,它发生在Node 14+版本
是这样吗?我也有同样的挫折感,但根据8.0.0版的发行说明——2020年10月26日 突破性更改:package.json文件中的浏览器字段现在指向ESM捆绑包,而不是CJS捆绑包。使用ESM导入的用户现在必须使用默认导入,而不是命名空间导入 8.0.0之前
从“firebase/app”导入*作为firebase
8.0.0之后
从“firebase/app”导入firebase
使用require('firebase/app')或require('firebase')的代码仍然有效,但为了获得正确的键入(例如代码完成),用户应将这些require调用更改为require('firebase/app')。默认值或require('firebase')。默认值。这是因为SDK现在为ESM包使用打字,不同的包共享一个打字文件
我也有同样的挫折感,但根据8.0.0版的发行说明——2020年10月26日 突破性更改:package.json文件中的浏览器字段现在指向ESM捆绑包,而不是CJS捆绑包。使用ESM导入的用户现在必须使用默认导入,而不是命名空间导入 8.0.0之前
从“firebase/app”导入*作为firebase
8.0.0之后
从“firebase/app”导入firebase
使用require('firebase/app')或require('firebase')的代码仍然有效,但为了获得正确的键入(例如代码完成),用户应将这些require调用更改为require('firebase/app')。默认值或require('firebase')。默认值。这是因为SDK现在为ESM包使用打字,不同的包共享一个打字文件
➜ firestore-test node --version
v14.7.0
➜ firestore-test firebase --version
8.6.0
➜ firestore-test npm --version
6.14.7