Как удалить (или добавить) объекты внутри массива, которые являются частью документа Firebase Firestore Cloud? - PullRequest
1 голос
/ 24 апреля 2020

У меня есть коллекция (Пациенты) в Firestore с несколькими документами (каждый пациент), каждый с автоматически сгенерированным идентификатором, в моем веб-приложении я показываю один конкретный c документ, который я получил по его идентификатору, используя ActivatedRoute из angular router.

В моем сервисе я могу получить доступ к одному отдельному «Пациенту» по id, используя следующий код:

export class FirebaseService {
  private patientCollection: AngularFirestoreCollection<Ipatients>;

  constructor(private afs: AngularFirestore) {
    this.patientCollection = afs.collection<Ipatients>("Patient", (ref) =>
      ref.orderBy("Name")
    );
  }

 public getOnePatient(id: Ipatients): Observable<Ipatients> {
    return this.afs.doc<Ipatients>(`Patient/${id}`).valueChanges();
  }

Это мои component.ts, где я запрашиваю одного пациента (по id) внутри ngOnInit

constructor(
    private fbservice: FirebaseService,
    private route: ActivatedRoute
  ) {
    this.route.params.subscribe((params) => {
      console.log(params["id"]);
    });
  }

  ngOnInit() {
    const idPatient = this.route.snapshot.params.id;
    this.fbpatient$ = this.fbservice.getOnePatient(idPatient);
  }
  

В HTML я отображаю только часть информации о пациенте, часть, которую я отображаю, представляет собой массив внутри документа, называемый сессиями, а - это сеансы что я хочу, чтобы пользователь взаимодействовал с , поэтому я oop через массив сессий внутри моего пациента и показываю каждый объект внутри с помощью ngFor

Изображение, показывающее структуру пациента в Firestore

Это пример данных пациента:

 fbpatient: Ipatients = 
    {
      id: "asdSDWESHGawhadah",
      Nombre: "John",
      Apellido: "Doe",
      Edad: "30",
      Telefono: "098849625",
      Mutualista: "SMI",
      Sesiones: [         // THIS IS THE ARRAY I WANT TO C.R.U.D 
        {
          nombre: "Sesion1",
          ordenesEntregadas: 1,
          fechaSesion: new Date(2019, 11, 24),
          asistencia: "Asistio",
          conAviso: null,
          datosCompletos: true,
        },
        {
          nombre: "Sesion2",
          ordenesEntregadas: 1,
          fechaSesion: new Date(2019, 11, 24),
          asistencia: "Asistio",
          conAviso: null,
          datosCompletos: true,
        },
      ],
    }

Мой вопрос: как мне удалить (или добавить) "сеансы" внутри моего пациента, какой код мне нужен в моем сервисе? Я не смог найти ни одного примера этого случая, только CRUD всего документа

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