我正在 react 和 firebase 中开发一个应用程序,当我尝试在数据库中写入时显示此错误,我不知道为什么:
对象可能为"空"。 TS2531 它标记了此代码
export async function registerUser(email: string, password: string, name:string, lastname: string, phoneNumber: string){
firebase.auth().createUserWithEmailAndPassword(email,password).then(cred => {
return db.collection('users').doc(cred.user.uid).set({
^
'name': name,
'lastname': lastname,
'phone-number': phoneNumber
})
}).then(() => {
redirectTo('/login')
})
从 createUserWithEmailAndPassword 的 API 文档中可以看出,cred
是一个 UserCredential 对象。 该文档建议其user
属性可以为空。 在这种情况下,它是否可以为空并不重要 - TypeScript 建议你无论如何都应该检查它以避免可能的崩溃。 所以,就这样做:
firebase.auth().createUserWithEmailAndPassword(email,password).then(cred => {
const user = cred.user
if (user) {
// use user safely here
}
})