Как связать данные Firebase? - PullRequest
0 голосов
/ 14 октября 2018

Мне нужна помощь с связью данных между прочим / pacijenti / и / istorija / (пожалуйста, посетите изображение).firebase database image pacijent.ts

import { Component, OnInit, OnDestroy } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import * as firebase from "firebase";
import { UserService } from "../../service/user.service";
import { NgForm } from "@angular/forms";

@Component({
  selector: "app-pacijent",
  templateUrl: "./pacijent.component.html",
  styleUrls: ["./pacijent.component.css"]
})
export class PacijentComponent implements OnInit, OnDestroy {
  today: number = Date.now();
  pacijentid = this.route.snapshot.params["id"];
  pacijent = {};
  kontakt;
  kontakti: any = [];
  istorija: any = [];
  allRef;
  kontaktRef;
  user;
  pregledi: any = [];

  constructor(
    private route: ActivatedRoute,
    private router: Router,
    private userService: UserService
  ) {
    this.allRef = firebase
      .database()
      .ref()
      .child("pacijenti/" + this.pacijentid);

    this.kontaktRef = firebase
      .database()
      .ref("istorija/" + this.pacijentid)
      .orderByChild("date");

    this.user = this.userService.getProfile();
    this.pregledi = [
      { pregled: "EHOSKOPSKI PREGLED STOMAKA" },
      { pregled: "EHOSKOPSKI PREGLED STITASTE ZLEZDE" },
      { pregled: "EHOSKOPSKI PREGLED OSTALIH REGIJA" },
      { pregled: "EHO SRCA" }
    ];
  }

  onDeleteClick() {
    this.allRef = firebase
      .database()
      .ref()
      .child("pacijenti/" + this.pacijentid)
      .remove()
      .then(() => {
        this.router.navigate(["/"]);
      });
  }

  dodajKontakt(form: NgForm) {
    const pregled = form.value.selectPacijent;
    this.kontaktRef = firebase
      .database()
      .ref("istorija/" + this.pacijentid)
      .push(
        (this.kontakt = {
          doktor: this.user.name,
          spec: this.user.spec,
          pregled: pregled,
          date: this.today,
          pacijent: this.pacijent
        })
      );
  }

  ngOnInit() {
    //get the pacijent
    this.allRef.once("value").then(snapshot => {
      this.pacijent = snapshot.val();
    });
    this.kontaktRef.on("child_added", data => {
      this.kontakti.push({
        key: data.key,
        data: data.val()
      });
    });
  }
  ngOnDestroy() {
    this.allRef.off();
    this.kontaktRef.off();
  }
}

Как вы можете видеть, я из компонента: pacijent.ts, добавляя данные в / istorija / и отображая в pacijent.html, до сих пор все не работало.Например, отображаемые данные в pacijent + pacijentid выглядят так: joh|doe|jdoe@gmail.com|INFO теперь, когда я нажимаю INFO, они перенаправляют меня на компонент istroija.ts / istorija.html, а теперь яесть проблема, я не могу получить данные из истории / pacijentId / ключа, потому что у меня больше нет pacijentId.

 this.istorijaRef= firebase
      .database()
      .ref()
      .child("pacijenti/" + this.pacijentid).child(this.istorijaid)

/ istorija / структура выглядит так: / istorija / + pacijent.id / key (istorijaiD).

Мне нужен способ отправить this.pacijentid в / istorija / pacijentid / key, чтобы я мог написать правильный ref.Или направить поиск istorijaId в / istorija /, (я могу получить istorijaId из activroute, когда щелкаю информацию.).

Я новичок в firebase и angular + не самый умный ребенок :), но я даю все возможноетак что, пожалуйста, помогите мне, если вы можете:)

...