Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js TypeError:firebase.default.initializeApp不是函数_Node.js_Firebase - Fatal编程技术网

Node.js TypeError:firebase.default.initializeApp不是函数

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进行我的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 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