首页 > 解决方案 > _firebase_config__WEBPACK_IMPORTED_MODULE_3__.default.createUserWithEmailAndPassword 不是 Vue Js 中的函数

问题描述

createUserWithEmailAndPassword 函数对我不起作用。以下是我的代码 -

配置.js

import firebase  from 'firebase/app'
import 'firebase/firestore'
import 'firebase/auth'

const firebaseConfig = {
    apiKey: "AIzaSyBD8W5T7ZSvryW2TNSWOgoCO3EpyV6i65o",
    authDomain: "vue-firebase-site-eb79e.firebaseapp.com",
    projectId: "vue-firebase-site-eb79e",
    storageBucket: "vue-firebase-site-eb79e.appspot.com",
    messagingSenderId: "657936011344",
    appId: "1:657936011344:web:a2498d2fe27f951b6b8155"
  };


firebase.initializeApp(firebaseConfig)

const projectAuth = firebase.auth();
const projectFirestore = firebase.firestore();
const timeStamp = firebase.firestore.FieldValue.serverTimestamp

export default { projectAuth, projectFirestore, timeStamp }

使用SignUp.js

import { ref } from "vue"
import projectAuth from '../firebase/config'

const  error = ref(null)

const signup = async (email,password,displayName) => {
    error.value  =  null

    try {
        const res = await projectAuth.createUserWithEmailAndPassword(email, password)
        console.log(res)
        if(!res){
            throw new Error('Could not complete the signup')
        }
        await res.user.updateProfile({displayName})
        error.value = null
        return res
    } catch (err) {
        console.log(err.message)
        error.value = err.message
    }
}

const useSignup = () =>{

    return{error, signup}
}

export default useSignup

尝试了很多东西-

  1. 删除节点模块并重新安装它们。
  2. 更改 firebase 的版本

没有什么对我有用的任何解决方案都值得赞赏。

提前致谢!!

标签: javascriptfirebasevue.jsfirebase-authenticationvuejs3

解决方案


当您在其中导入config.js文件时,您useSignUp.js将整个对象设置为projectAuth

您需要做的是:

import { projectAuth } from '../firebase/config' // just get projectAuth variable from config.js

编辑:

还有另一种解决方法:

import firebaseConfig from '../firebase/config' 

然后在try块内使用这个:

const res = await firebaseConfig.projectAuth.createUserWithEmailAndPassword(email, password)

推荐阅读