Firebase createUserWithEmailAndPassword 方法返回未定义

问题描述 投票:0回答:2

我正在尝试使用 firebase -

createUserWithEmailAndPassword
方法进行注册,但当我尝试记录返回值时,它返回未定义。

我的配置文件:

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

const firebaseConfig = {
  apiKey: "xxxxxx",
  authDomain: "xxxxx",
  projectId: "xxxxxx",
  storageBucket: "xxxxxx",
  messagingSenderId: "xxxxxx",
  appId: "xxxxxxx",
}

firebase?.initializeApp(firebaseConfig)

const auth = firebase?.auth()
const firestore = firebase?.firestore()

export { auth, firestore }

我的注册文件:

import React, { useState } from "react"
import { auth } from "../firebase"



function Signup(props: Props) {
  const [email, setEmail] = useState("")
  const [password, setPassword] = useState("")
  console.log({ email, password })



  
  async function handleSubmit(e) {
    console.log("clicked")
    e.preventDefault()
    const res = await auth?.createUserWithEmailAndPassword(email, password)
    
    console.log(res) -> gives undefined
    
  }

  return (
    <>
      <div>
        <form onSubmit={(e) => handleSubmit(e)}>
          <input value={email} onChange={(e) => setEmail(e.target.value)} />
          <input value={password} onChange={(e) => setPassword(e.target.value)} />
          <button type='submit'>Submit</button>
        </form>
      </div>
    </>
  )
}

export default Signup

我正在使用 firebase 版本 - 9.6.5

在 Firebase 仪表板上,我没有看到任何记录,控制台上也没有出现任何错误。

我已经阅读过其他此类答案,解决方案主要是使用正确的包版本/升级、删除节点模块或仔细初始化配置。我相信我做的这些步骤是正确的。

我不确定我做错了什么,任何正确方向的帮助都会非常有帮助。谢谢!

javascript reactjs firebase-authentication
2个回答
1
投票

https://firebase.google.com/docs/auth/web/password-auth#web-version-9

请查看 v9 的官方文档。 我认为你的方法对应于v8

我对 v8 使用与你相同的方法,并且效果很好。

或者您可以尝试弃用 v8 并尝试使用您的代码。


1
投票

我已经解决了这里的问题,v9 文档改变了我们导入和使用该方法的方式,

在配置文件中,

import { initializeApp } from "firebase/app"
import { getFirestore } from "firebase/firestore"
import { getAuth } from "firebase/auth"

const firebaseConfig = {
  ....
}

// Initialize Firebase
initializeApp(firebaseConfig)

const db = getFirestore()

const auth = getAuth()

export { auth, db }

import { auth } from "../firebase"
import { createUserWithEmailAndPassword } from "firebase/auth"


createUserWithEmailAndPassword(auth, email, password).then((i) => console.log(i))
© www.soinside.com 2019 - 2024. All rights reserved.