如何关联Firebase数据?

时间:2018-10-14 16:45:51

标签: angular firebase firebase-realtime-database firebase-authentication angular6

我需要有关将数据关联到/ 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组件,现在我有问题,我无法从istorija / pacijentId / key cuz中获取数据。我不再有pacijentId。

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

/ istorija /结构如下:/ istorija / + pacijent.id / key(istorijaiD)。

我需要将this.pacijentid发送到/ istorija / pacijentid / key的方法,这样我才能编写适当的参考。或直接在/ istorija /中找到istorijaId,(当我单击信息时,我可以从Activatedroute获取istorijaId。)

我是Firebase的新手,棱角分明的人+不是最聪明的孩子:)但我正在尽我所能,所以请帮我吧:)

0 个答案:

没有答案