首页 > 解决方案 > Firebase 身份验证无法使用 Vue 和 Vuex

问题描述

我正在尝试在我的 Vue 应用程序中使用 Firebase 添加身份验证,但[Vue warn]: Error in v-on handler: "TypeError: _config_firebase__WEBPACK_IMPORTED_MODULE_8__.user.SignInWithEmailAndPassword is not a function"出现错误。这是我的 irebase 配置文件:

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

const firebaseConfig = {
  apiKey: "MY_API_KEY",
  authDomain: "MY_AUTH_DOMAIN",
  databaseURL: "MY_DB_URL",
  projectId: "MY_PROJECT_ID",
  storageBucket: "MY_STORAGE_BUCKET",
  messagingSenderId: "MY_MESSAGE_SENDER_ID",
  appId: "MY_APP_ID"
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);

// Get a Firestore instance
export const user = firebase.auth();
export const db = firebase.firestore();

然后在 Vuex 中的动作:

import { db, user } from "./config/firebase";

 loginUser({ commit }, payload) {
      user
        .SignInWithEmailAndPassword(payload)
        .then(user => {
          console.log(user);
          commit("SET_USER", user);
        })
        .catch(error => {
          commit("setLoading", false);
          commit("setError", error);
          console.log(error);
        });
      router.push("/");
    }

到目前为止,我已经能够创建、读取、更新和删除,尽管配置文件与此稍有不同,当我添加auth时是在我更改代码时。

标签: javascriptfirebasevue.jsfirebase-authenticationvuex

解决方案


改变这个:

user.SignInWithEmailAndPassword(payload)

进入这个:

user.signInWithEmailAndPassword(payload)

文档

使用电子邮件和密码异步登录。


推荐阅读