我正在尝试使用 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 仪表板上,我没有看到任何记录,控制台上也没有出现任何错误。
我已经阅读过其他此类答案,解决方案主要是使用正确的包版本/升级、删除节点模块或仔细初始化配置。我相信我做的这些步骤是正确的。
我不确定我做错了什么,任何正确方向的帮助都会非常有帮助。谢谢!
https://firebase.google.com/docs/auth/web/password-auth#web-version-9
请查看 v9 的官方文档。 我认为你的方法对应于v8
我对 v8 使用与你相同的方法,并且效果很好。
或者您可以尝试弃用 v8 并尝试使用您的代码。
我已经解决了这里的问题,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))