Ionic firestore передайте id в сделку и отредактируйте его - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно передать идентификатор сделки, чтобы отредактировать его.Это просто добавление сделки с пустым идентификатором.Мне нужно показать UID документа в id, чтобы я мог также редактировать его.

Я добавляю и редактирую данные с той же страницы.Логика заключается в том, что если идентификатор данных совпадает, то он откроет редактирование, а если он не совпадает, то его добавление.Добавление работает нормально.Но в редактируемых данных он показывает вышеуказанную ошибку.

он покажет мне эту ошибку, потому что идентификатор не определен.

ОШИБКА FirebaseError: Функция DocumentReference.update () вызвана с неверными данными.Неподдерживаемое значение поля: не определено (найдено в поле id)

Любой может помочь в коде, как плохо передать идентификатор в 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);
  }
...