gpt4 book ai didi

angular - FirebaseError : Function DocumentReference. set() 调用了无效数据。不支持的字段值:未定义(在字段名称中找到)

转载 作者:行者123 更新时间:2023-12-03 22:00:38 26 4
gpt4 key购买 nike

以下代码可用于在 Firebase 中创建新用户,但在浏览器中出现以下错误,您能帮我理解为什么吗?

Function DocumentReference.set() called with invalid data. Unsupported field value: undefined (found in field nombre)



r

代码:
export class AuthService {

private userSubscription: Subscription = new Subscription();

constructor(private afAuth: AngularFireAuth,
private router: Router,
private afDB: AngularFirestore,
private store: Store<AppState>) { }

initAuthListener() {

this.afAuth.authState.subscribe((fbUser: firebase.User) => {
if (fbUser) {
this.userSubscription = this.afDB.doc(`${fbUser.uid}/usuario`).valueChanges()
.subscribe((usuarioObj: any) => {

const newUser = new User(usuarioObj)

this.store.dispatch(new SetUserAction(newUser))

})
} else {
this.userSubscription.unsubscribe()
}
})
}

createUser(nombre: string, email: string, password: string) {

this.store.dispatch(new ActivarLoadingAction())

this.afAuth.auth
.createUserWithEmailAndPassword(email, password)
.then(resp => {


const user: User = {
uid: resp.user.uid,
nombre: nombre,
email: resp.user.email
}

this.afDB.doc(`${user.uid}/usuario`)
.set(user)
.then(() => {

this.router.navigate(['/'])
this.store.dispatch(new DesactivarLoadingAction())
})


})
.catch(erro => {
console.error(erro)
this.store.dispatch(new DesactivarLoadingAction())
Swal.fire('Error!', erro.message, 'error')
})
}


}

最佳答案

错误消息告诉您名为“nombre”的字段具有 JavaScript 值 undefined在您尝试将其添加到 Firestore 文档时。 undefined不是 Firestore 文档字段值的有效值。

该错误特指此代码:

    const user: User = {
uid: resp.user.uid,
nombre: nombre,
email: resp.user.email
}

this.afDB.doc(`${user.uid}/usuario`)
.set(user)

要解决此问题,您应该确保:
  • nombre 有一个非未定义的值
  • 或从您添加的对象中删除它
  • 关于angular - FirebaseError : Function DocumentReference. set() 调用了无效数据。不支持的字段值:未定义(在字段名称中找到),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59621013/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com