首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react导入错误防火墙/防火墙

使用react导入错误防火墙/防火墙
EN

Stack Overflow用户
提问于 2021-09-09 05:07:46
回答 2查看 1.1K关注 0票数 2

我对火药库有意见。我想从firebase读取一些数据,但是我无法从firebase导入集合,试图导入错误:' collection‘不是从'firebase/firestore/'导出的。我读过一些文章说这个问题与v9 SDK有关。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-10 09:28:29

您必须正确导入Firebase SDK。问题在第一行,您直接从"firebase“导入,这不是理想的方法,据我理解,导入调用/方法与版本更改不同步。一定要读关于在模块绑定程序中使用Firebase的文档

从FireBaseV8.0.0开始,您必须按照文档导入Firebase,其中提到版本8.0中发生了重大更改

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

8.0.0之前

代码语言:javascript
复制
import * as firebase from 'firebase/app'

8.0.0之后

代码语言:javascript
复制
import firebase from 'firebase/app'

使用require('firebase/app')require('firebase')的代码仍然可以工作,但是您应该更改对require('firebase/app').defaultrequire('firebase').default的调用。

更改代码如下所示:

代码语言:javascript
复制
import firebase from "firebase/app" 
import { getFirestore } from "firebase/firestore";
import { collection, addDoc, getDocs } from "firebase/firestore";
import "firebase/auth" 
const auth = firebase.auth()

这应该对你有用。如果没有,那么您可能已经将SDK版本从8更新到了9,使用版本9,为了导入firebase,事情发生了一些变化,但是没有必要降级到以前的版本,因此可以在导入中使用/compat文件夹,如下所示

代码语言:javascript
复制
import firebase from 'firebase/compat/app';

来自[消]火基文件

为了使您的代码在从v8升级到v9 beta之后保持正常运行,请将导入语句更改为使用每个导入的" compat“版本,如下所示(v9 compat包与v8代码兼容):

代码语言:javascript
复制
import firebase from 'firebase/compat/app'; 
import 'firebase/compat/auth'; 
import 'firebase/compat/firestore';
票数 1
EN

Stack Overflow用户

发布于 2021-09-09 05:43:15

该错误消息意味着没有从"firebase/firestore/“模块导出的”集合“。因此,当您试图导入“集合”时,错误出现在第二行。

在文档中,"firebase/firestore“中没有尾随的"/”。试着移除尾随"/“,然后再试一次。

我建议你遵循关于建立消防站的指南

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69112523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档