У меня есть коллекция (Пациенты) в 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 всего документа