导入在 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.js
和firebase-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) 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将图像从 ReactJS 上传到 Firebase v9 存储
使用 Firebase v9 将文件从网站上传到 Firebase 存储
在 Firebase v9 错误中使用 uploadString 监控上传
Firebase v9 在移动设备上加载大型 iframe.js (263K)
Firebase Modular SDK V9.0.0+ TypeError:无法读取未定义 Firebase 的属性“应用程序”