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


发布于 2021-09-10 09:28:29
您必须正确导入Firebase SDK。问题在第一行,您直接从"firebase“导入,这不是理想的方法,据我理解,导入调用/方法与版本更改不同步。一定要读关于在模块绑定程序中使用Firebase的文档
从FireBaseV8.0.0开始,您必须按照文档导入Firebase,其中提到版本8.0中发生了重大更改
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('firebase/app').default或require('firebase').default的调用。
更改代码如下所示:
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文件夹,如下所示
import firebase from 'firebase/compat/app';来自[消]火基文件
为了使您的代码在从v8升级到v9 beta之后保持正常运行,请将导入语句更改为使用每个导入的" compat“版本,如下所示(v9 compat包与v8代码兼容):
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';发布于 2021-09-09 05:43:15
该错误消息意味着没有从"firebase/firestore/“模块导出的”集合“。因此,当您试图导入“集合”时,错误出现在第二行。
在文档中,"firebase/firestore“中没有尾随的"/”。试着移除尾随"/“,然后再试一次。
我建议你遵循这关于建立消防站的指南
https://stackoverflow.com/questions/69112523
复制相似问题