开发者问题收集

Vuejs 3 createApp 使用来自 vuefire 的 firestorePlugin 获得未捕获的 TypeError:无法设置未定义的属性“$unbind”且无渲染

2021-02-08
1372

在我的 vuejs3 应用程序中,我的 main.js 中有这段简单的代码

import { createApp } from "vue";
import App from "./App.vue";
import { firestorePlugin } from "vuefire";

const app = createApp(App);

app.use(firestorePlugin);



app.mount("#app");

也许我没有正确使用 app.use(firestorePlugin); 。如果我不这样做,一切都会完美呈现,但这样做我会收到此错误

vuefire.esm.js?0ff2:619 Uncaught TypeError: Cannot set property '$unbind' of undefined
    at firestorePlugin (vuefire.esm.js?0ff2:619)
    at Object.use (runtime-core.esm-bundler.js?5c40:2949)
    at eval (main.js?56d7:9)
    at Module../src/main.js (app.js:1021)
    at __webpack_require__ (app.js:849)
    at fn (app.js:151)
    at Object.1 (app.js:1034)
    at __webpack_require__ (app.js:849)
    at checkDeferredModules (app.js:46)
    at app.js:925

单击后,它显示如下内容: Uncaught TypeError: Cannot set property '$unbind' of undefined

 Vue.prototype[unbindName] = function firestoreUnbind(key, reset) {
        this._firestoreUnbinds[key](reset);
        delete this._firestoreUnbinds[key];
        delete this.$firestoreRefs[key];
    };

我的 firebase 配置在 firebase.js

import firebase from "firebase/app";
import "firebase/firestore";
import "firebase/auth";
import "firebase/storage";

const firebaseConfig = {
  apiKey: xxxxxxxxxxxxxxxxxxxxxxxx,
  authDomain: xxxxxxxxxxxxxxxxxxxxxxxx,
  projectId: xxxxxxxxxxxxxxxxxxxxxxxx,
  storageBucket: xxxxxxxxxxxxxxxxxxxxxxxx,
  messagingSenderId: xxxxxxxxxxxxxxxxxxxxxxxx,
  appId: xxxxxxxxxxxxxxxxxxxxxxxx,
};
firebase.initializeApp(firebaseConfig);

export const db = firebase.firestore();
export const auth = firebase.auth();
export const storage = firebase.storage();

任何帮助都值得赞赏。如果有任何需要,请告诉我

2个回答

在主页 https://vuefire.vuejs.org/ 中,您会找到此注释:

Note: This version currently supports Vue 2 and Firebase 7. Support for Vue 3 / Composition API and Firebase 8 is on the way.

因此,请尝试卸载当前版本并安装下一个版本:

 npm install vuefire@next firebase@next
2021-02-08

尽管此处的答案建议“卸载当前版本并安装下一个版本”,但似乎没有任何支持当前版本 Vue (3) 或 Firebase (9) 的 Vuefire 更新版本

最新稳定版本 ( [email protected] ) 是在“一年前”发布的(2021 年 5 月),正如此处 2021 年 2 月的答案所示, https://vuefire.vuejs.org/ 的主页内容如下:“此版本目前支持 Vue 2 和 Firebase 7。对 Vue 3 / Composition API 和 Firebase 8 的支持即将推出。” Alpha 版本 ( [email protected] ) 也是“一年前”发布的(大约在 2021 年 5 月),并且“目前支持 Firebase 7。对 Firebase 8 的支持即将推出。”

Mark Gavagan
2022-05-09