Vue 2 和 Firebase 9 - 在 'firebase/firestore' 中找不到“导出 'getFirestore'

Posted

技术标签:

【中文标题】Vue 2 和 Firebase 9 - 在 \'firebase/firestore\' 中找不到“导出 \'getFirestore\'【英文标题】:Vue 2 and Firebase 9 - "export 'getFirestore' was not found in 'firebase/firestore'Vue 2 和 Firebase 9 - 在 'firebase/firestore' 中找不到“导出 'getFirestore' 【发布时间】:2022-01-06 20:44:39 【问题描述】:

我正在尝试实例化 firebase 并从 firestore 的集合中获取一些文档。我似乎无法让我的应用实例化 firebase / 连接到 firestore。我已经阅读了 Firebase V9 的文档,这应该是正确的方法吗? 任何帮助将不胜感激! 我收到错误“在 'firebase/firestore' 中找不到导出 'getFirestore'”以及我尝试导入的所有其他函数(例如 getDocs 等)的类似错误。db.js

import 
    initializeApp
 from 'firebase/app';

import 
    getFirestore
 from 'firebase/firestore';

// Your web app's Firebase configuration
const firebaseConfig = 
  etc...
;

// Initialize firebase and then firestore of that instance
export const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);

App.vue

<template>
  <v-app>
    <v-app-bar
      app
      color="primary"
      dark
    >
      <h1 app color="accent" light>Hans Lite</h1>
    </v-app-bar>
    <v-main>
      <addFormula /> 
    </v-main>
  </v-app>
</template>

<script>
import addFormula from './components/addFormula.vue'
export default 
  name: 'App',

  components:  
    addFormula
  ,

  data: () => (
    //
  ),
;
</script>

<style scoped>
h1 
  font-family: 'Roboto Mono', monospace;
  font: bold;

</style>

addFormula.vue

<template>
    <v-container fluid>
            <v-col cols="12" md="3">
                <v-card outlined>
                    <v-card-title class="font-weight-bold">Add Formulas</v-card-title>
                    <v-select elevation="2"
                        class="ma-4" 
                        :items="items"
                        label="Select Package"
                        @change="selectPackage"></v-select>
                </v-card>
            </v-col>
    </v-container>
</template>

<script>
import  db  from "../firebase/db"
import  collection, getDocs  from "firebase/firestore"
export default 
    data: () => (
        items: ['chicken', 'beef'],
        package: null
    ),
    methods: 
        async selectPackage(e) 
            console.log("label: "+e)
            this.package = e
            const querySnapshot = await getDocs(collection(db, this.package))
            var allDocs = [];
            querySnapshot.forEach(doc => 
                allDocs.push(doc.data())
            )
            console.log(allDocs)
        
    

</script>

<style scoped>
h1 
    /* border: solid; */

</style>

【问题讨论】:

请提供您当前的 firebase 版本 Firebase 版本 9.23.0 我没有找到你刚才提到的version。请检查版本是否有效 【参考方案1】:

请在NPMJS 上查看可用的Firebase 版本。

您提到的版本不存在或无效。在 firebase 发行说明和库版本列表中。

【讨论】:

如何导入特定版本?我重新安装,它一直默认为 9.23.0 你只需要使用命令npm i firebase@Version_you_want进行安装 是的,我前一阵子这样做了,发现它仍然是 9.23.0?真奇怪,我用的是 npm install firebase@9.5.0 @akemedis 卸载 firebase 并重新安装。它会工作 Deadset,卸载 firebase 和 firebase cli,然后重新安装。它重新安装为 9.23.0。然后我将 npm 更新为最新版本,并将节点更新为最新版本。然后我卸载了firebase和cli。然后我通过 npm install -g firebase-tools 重新安装了 firebase。它再次重新安装为 v9.23.0。我在做什么错lmao

以上是关于Vue 2 和 Firebase 9 - 在 'firebase/firestore' 中找不到“导出 'getFirestore'的主要内容,如果未能解决你的问题,请参考以下文章

Vue 显示来自 firebase 云存储 blob 的图像

Quasar 2.2.2、Vue 3 和 Firebase:如何从路由器访问 GlobalProperties

googleapis导入失败,带有typescript / vue / firebase托管

Firebase - Vue 数据库集成不起作用

Vue 2;在“firebase/app”中找不到导出“默认”(导入为“firebase”)

Firebase 升级到 9.2.0 后,Google 登录 uid 和 firebase uid 不匹配