如何解决TypeError:firebase.default.initializeApp不是函数
我正在为我的Web项目使用Firebase。 特别是在服务器端。我遵循了官方文件。
https://firebase.google.com/docs/web/setup?authuser=0#node.js-apps 它说,
// 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";
和
// TODO: Replace the following with your app's Firebase project configuration
var firebaseConfig = {
// ...
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
但是它不起作用。所以我只是尝试随机搜索。
只有它有效。
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+版本开始的。
是吗?
解决方法
我也有同样的挫败感,但根据 https://firebase.google.com/support/release-notes/js 版本 8.0.0 中的发行说明 - 2020 年 10 月 26 日
重大变化: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 包使用类型化,并且不同的包共享一个类型化文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。