Обновление Firebase инкрементных данных - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь реализовать кнопку «Мне нравится» на Facebook, где, когда пользователь нажимает, данные будут увеличиваться, а данные внутри базы данных обновляются.в этом случае я хочу обновить число людей, присоединяющихся к событию, например, число присоединений равно 0 в базе данных, когда пользователь нажимает кнопку, номер присоединения равен 1. Проблема в том, что данные даже не меняются.

Home.html

<ion-card *ngFor="let event of (eventList$ | async)?.slice().reverse()" navPush="EventPage" [navParams]="{event: event}">
  <ion-col>
    <button ion-button round (click)="joinAdd()">Join Event</button>
  </ion-col>
</ion-card>

Home.ts

import { EventDetail } from '../../models/event-detail/event-detail.interface';
import { Observable } from 'rxjs';

eventListRef$: AngularFireList<EventDetail>;
eventList$: Observable<EventDetail[]>;
updateEvent = {} as EventDetail;

constructor(...) {
  this.database.list<EventDetail>('event-list').valueChanges().subscribe((eventData) => { 
  console.log("Event details data", eventData);
  }, (err)=>{
    console.log("Error while retrieving event details : ", err);
  }); 

  this.eventListRef$ = this.database.list<EventDetail>('event-list');
  this.eventList$ = this.eventListRef$.valueChanges();

}

joinAdd(updateEvent: EventDetail,) {
  this.updateEvent.$key = this.updateEvent.$key,
  this.updateEvent.eventName = this.updateEvent.eventName,
  this.updateEvent.eventDesc = this.updateEvent.eventDesc,
  this.updateEvent.address = this.updateEvent.address,
  this.updateEvent.startDate = this.updateEvent.startDate,
  this.updateEvent.endDate = this.updateEvent.endDate,
  this.updateEvent.startTime = this.updateEvent.startTime,
  this.updateEvent.endTime = this.updateEvent.endTime,
  this.updateEvent.noV = this.updateEvent.noV,
  this.updateEvent.image = this.updateEvent.image,
  this.updateEvent.join = this.updateEvent.join++;

this.eventListRef$.update(this.updateEvent.$key, updateEvent);


    }

}

Трассировка стека

TypeError: Cannot read property 'set' of undefined
  at isFirebaseRef (http://localhost:8101/build/vendor.js:52113:25)
  at checkOperationCases (http://localhost:8101/build/vendor.js:52123:14)
  at Object.dataOperation [as update] (http://localhost:8101/build/vendor.js:171043:91)
  at HomePage.webpackJsonp.537.HomePage.joinAdd (http://localhost:8101/build/0.js:6419:28)
  at Object.eval [as handleEvent] (ng:///HomePageModule/HomePage.ngfactory.js:87:31)
  at handleEvent (http://localhost:8101/build/vendor.js:13963:155)
  at callWithDebugContext (http://localhost:8101/build/vendor.js:15472:42)
  at Object.debugHandleEvent [as handleEvent] (http://localhost:8101/build/vendor.js:15059:12)
  at dispatchEvent (http://localhost:8101/build/vendor.js:10378:25)
  at http://localhost:8101/build/vendor.js:11003:38

Я прошел 3 различных урока на YouTube, и на данный момент яя действительно запутался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...