Я пытаюсь обновить некоторые данные в Firebase, но выдает следующую ошибку:
ОШИБКА FirebaseError: Функция DocumentReference.update () вызвана с неверными данными.Неподдерживаемое значение поля: не определено (найдено в поле id)
Я добавляю и редактирую данные с той же страницы.Логика заключается в том, что если идентификатор данных совпадает, то он откроет редактирование, а если он не совпадает, то его добавление.Добавление работает нормально.Но в редактируемых данных он показывает вышеуказанную ошибку.
Может ли кто-нибудь оказать помощь или дать подсказку, чтобы я мог решить эту проблему.Спасибо
if (this.navParams.data.deal) {
this.title = "EDIT DEAL";
this.buttonText = "Update";
this.deal = this.navParams.data.deal;
this.dealForm = fb.group({
'name': [this.deal.name, [Validators.required]],
'city': [this.deal.city],
'number': [this.deal.number],
'gender': [this.deal.gender],
'birthday': [this.deal.birthday],
'userId': [''],
'userName': [''],
'id':[''],
'isInvite':this.deal.isInvite|| false
})
} else {
this.deal = {
approved: 'pending'
}
this.dealForm = fb.group({
'name': ['', Validators.required],
'city': ['', [Validators.required]],
'number': ['', Validators.required],
'gender': ['', Validators.required],
'userName': [''],
'userId': [''],
'birthday': ['', [Validators.required]],
'id':[''],
})
}
}
submit() {
if (!this.dealForm.valid) {
this.helper.presentAlert('Error', 'please correct the data and retry
again', 'ok');
return;
}
let deal: Deal = {
approved: 'pending',
name: this.dealForm.get('name').value,
city: this.dealForm.get('city').value,
birthday: this.dealForm.get('birthday').value,
number: this.dealForm.get('number').value,
gender: this.dealForm.get('gender').value,
userId: this.user.uid,
userName: this.user.name,
id:'',
photo: this.deal.photo || '',
isInvite:false
}
console.log(this.deal.id);
this.helper.load();
if (this.navParams.data.deal) {
deal.id = this.deal.id;
console.log(deal.id);
this.api.updateDeal(deal.id, deal).then(r => {
console.log('deal id' + this.deal.id + ' updated successfully');
this.helper.toast(`Updated Deal sent for approval from admin!`);
this.navCtrl.pop().then(() => this.helper.dismiss());
})
} else {
this.api.addDeal(deal).then(resp => {
console.log(resp);
this.helper.toast(`Child Added ! . Thanks for using Medrec`);
this.navCtrl.pop().then(() => this.helper.dismiss());
});
}
}
api.ts
updateDeal(id,data){
return this.afs.doc('child/'+id).update(data);
}