![](/img/trans.png)
[英]react-firebase-hook sign in with email and password error massage problem
[英]How to use sign in with email and password with Firebase?
这将是我在 Stack Overflow 上最长的帖子,我并不为此感到自豪。 重点应该放在前两个代码块上,我在其中定义了处理 firebase 的函数。 其他位只是一个健全的检查,我没有遗漏任何简单的东西。
问题是我的表单不会被提交(并且 onSubmit 内部的函数甚至不会运行)。 单击“提交”按钮后,我想使用 email 和密码将用户注册到 Firebase。 这行不通。
async createUserProfileDocument(user, additionalData) {
if (!user) return
const userRef = this.firestore.doc(`users/${user.uid}`)
const snapshot = await userRef.get()
if (!snapshot.exists) {
const { displayName, email, photoURL } = user
const createdAt = moment().format('MMMM Do YYYY, h:mm:ss a')
try {
await userRef.set({
displayName,
email,
photoURL,
createdAt,
...additionalData,
})
} catch (error) {
console.error('error creating user: ', error)
}
}
return this.getUserDocument(user.uid)
}
export const Register = () => {
const history = useHistory()
async function writeToFirebase(email, senha, values) {
try {
const { user } = await firebaseService.auth.createUserWithEmailAndPassword(email, senha)
firebaseService.createUserProfileDocument(user, values)
history.push('/')
} catch (error) {
console.error('error: ', error)
}
}
function onSubmit(values, { setSubmitting }) {
values.displayName = values.user.nome
writeToFirebase(values.user.email, values.user.senha, values)
setSubmitting(false)
}
return (
<div className="booking">
<Formik
initialValues={initialValues}
validationSchema={Yup.object({ ...validationService.generateBasicUserSchema() })}
onSubmit={onSubmit}>
<Form>
<EWUserBasicDataFields />
<button type="submit">Submit</button>
</Form>
</Formik>
</div>
)
}
正如我在评论中所说
做一些测试,删除validationSchema
,看看你是否可以提交表单。 如果可以,问题是表格无效。 还要检查控制台以查看是否没有任何错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.