我开始编写新网站的代码,并搜索更新fireStore数据库上的“用户”集合
我正在使用Angular 7和Cloud Firestore。
我创建了第一个集合“用户”,其中包含我的会员信息
我的收藏屏幕。
进入我的想法,您可以看到我的更新用户数据功能
// Update User
UpdateUser(user: User){
this.userRef.update({
firstName: user.firstName,
lastName: user.lastName,
displayName: user.displayName,
photoURL: user.photoURL,
emailVerified: user.emailVerified,
birthday: user.birthday,
addressOne: user.addressOne,
addressTwo: user.addressTwo,
zipCode: user.zipCode,
city: user.city,
country: user.country,
phoneOne: user.phoneOne,
phoneTwo: user.phoneTwo,
profilType: user.profilType,
profilPicture: user.profilPicture,
admin: user.admin,
moderator: user.admin
})
}
您将在这里看到我的表单更新功能
updateUserData(){
this.edituserprofileForm = this.fb.group({
firstName: ['', [Validators, Validators.minLength(2)]],
lastName: ['', [Validators, Validators.minLength(2)]],
address: [],
address2: [],
city: [],
country: [],
zipCode: ['', [Validators.pattern('^[0-9]+$')]],
phoneOne: ['', [Validators.pattern('^[0-9]+$')]]
})
}
goBack(){
this.location.back();
}
UserUpdateForm(){
this.crudApi.UpdateUser(this.edituserprofileForm.value) // Update user data using CRUD API
console.log(this.edituserprofileForm.value);
}
此刻,当我提交表格时,我会收到此错误
Reference.update失败:第一个参数包含未定义的属性'edit.eSwVu5bujlYkSH8gZiIlW0LHz5i2.displayName' 在validateFirebaseData上
我不明白为什么会收到此错误
多谢
答案 0 :(得分:1)
您的表单仅具有地址数据,但是在更新功能中,您还更新了displayName
,photoURL
等,这些在函数从您的用户表单接收的用户对象中是未定义的。
您应该删除缺少的数据字段或创建新功能以更新表单数据。
UpdateUser(user: User){
this.userRef.update({
firstName: user.firstName,
lastName: user.lastName,
addressOne: user.addressOne,
addressTwo: user.addressTwo,
zipCode: user.zipCode,
city: user.city,
country: user.country,
phoneOne: user.phoneOne
})
}