导入在 Firebase Client v9 (npm) 上不起作用

Posted

技术标签:

【中文标题】导入在 Firebase Client v9 (npm) 上不起作用【英文标题】:Imports not working on Firebase Client v9 (npm) 【发布时间】:2021-11-18 01:15:01 【问题描述】:

上下文:

我终于主动将我的应用程序中的 Firebase 库从 9.0.2 兼容到新的模块化、可摇树的库。我在 Windows 10 上,使用 WebStorm,我的 package.json 只有依赖 "firebase": "^9.0.2"

应该怎么做:

当我尝试导入 initializeApp 时,如文档所示:

import  initializeApp  from 'firebase/app';
const firebaseApp = initializeApp( /* config */ );

我收到错误 Cannot resolve symbol 'initializeApp'

尝试修复:

我正在一个简单的 Vue.js 项目中测试这个新的 Firebase 库,只配置了 ESLint 和 Babel。我尝试删除node_modules 文件夹,清理chace,从npm 重新安装所有内容,但似乎没有任何东西可以使标准导入工作。

当前解决方法:

我查看了node_modules/firebase,果然,所有标准函数都在那里,在诸如firebase-app.jsfirebase-auth.js之类的javascript文件中。这意味着我可以按如下方式导入所有内容:

import  initializeApp  from 'firebase/firebase-app';
const firebaseApp = initializeApp( /* config */ );

但我确信这既不正常也不正常,因为我似乎是唯一一个报告过这种行为的人。我在这里错过了什么?

更新:正如@Dharmaraj所说,在VS Code中配置同一个项目时不会发生此错误,因此这似乎是WebStorm问题。

【问题讨论】:

您是否偶然使用了 Webstorm? @Dharmaraj 是的,我是! 你试过在 VS Code 中打开同一个项目吗?我没有收到此警告,Webstorm 仅在使用 JS 项目时向我显示此警告。在 TS 中运行良好。 我刚刚在一个空白的 VS Code 项目上试了一下,它确实有效。谢谢,@Dharmaraj!我将在我的问题上添加 WebStorm 标签。 请检查***.com/a/69242763/783119和youtrack.jetbrains.com/issue/… / youtrack.jetbrains.com/issue/… 【参考方案1】:

所以这确实是一个 WebStorm 问题。正如@LazyOne 所指出的,我们可以找到与 WebStorm 和 phpStorm 相关的 Cannot resolve symbol ... 问题 here 和 here 的解决方案。

TL;DR:您所要做的就是:打开node_modules,右键单击模块(文件夹)@firebase,然后选择Mark as not excluded

这意味着您的 IDE 现在将索引这些文件,并且现在可以从 @firebase 中的文件导入函数,因为它们已被程序识别。

感谢所有参与的人!

【讨论】:

以上是关于导入在 Firebase Client v9 (npm) 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

列出 Firebase 存储 v9 中的所有文件

将图像从 ReactJS 上传到 Firebase v9 存储

使用 Firebase v9 将文件从网站上传到 Firebase 存储

在 Firebase v9 错误中使用 uploadString 监控上传

Firebase v9 在移动设备上加载大型 iframe.js (263K)

Firebase Modular SDK V9.0.0+ TypeError:无法读取未定义 Firebase 的属性“应用程序”