Firebase更新8.0.0后,出现以下错误:Attempted import error: 'initializeApp' is not exported from 'firebase/app' (imported as 'firebase'). 本文主要介绍Python中解决此异常错误方法。

1、Firebase更新8.0.0后报错原因

Firebase 8.0.0版中,Firebase SDK在处理导出方式方面发生了重大变化:

包中的浏览器字段。json文件现在指向ESM包而不是CJS包。使用ESM导入的用户现在必须使用默认导入,而不是名称空间导入。

1) Firebase 8.0.0之前

import * as firebase from 'firebase/app'

2) Firebase 8.0.0之后

import firebase from 'firebase/app'

使用require('firebase/app')require('firebase')将仍然有效的代码,但是为了获得正确的输入(例如,用于代码完成),用户应将这些要求更改为 require('firebase/app').defaultrequire('firebase').default。这是因为SDK现在使用ESM捆绑软件的类型,而不同的捆绑软件共享一个类型文件。

2、解决方法使用新的ESM bundle default export

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

推荐文档