Получение данных пользователя по uid firebase

Возникла такая проблема, как мне получить данные пользователя по uid? Cтруктура моей БД:

Cтруктура моей БД:

В разделе exam находится userKey и по этому userKey нужно вывести userName в разделе exam. Как это сделать я не совсем понимаю.

Код вывода информации из раздела exam:

export class ExamComponent implements OnInit {
  displayedColumns: string[] = ["number", "quiz.title", "insertDate", "userKey", "username", "key", ];
  dataSource = new MatTableDataSource();
  @ViewChild(MatPaginator, {
    static: true
  }) paginator: MatPaginator;
  @ViewChild(MatSort, {
    static: false
  }) sort: MatSort;
  isLoading = false;

  constructor(
    private examService: ExamService,
    private UserService: UserService,
    public dialog: MatDialog,
    private snackBar: MatSnackBar
  ) {}

  ngOnInit() {
    this.getExams();
  }

  /*ngOnInit1() {
     this.getUsers();
   }*/

  getExams() {
    this.examService.getAll().subscribe(data => {
      this.dataSource = new MatTableDataSource(data.reverse());

      setTimeout(() => {
        this.dataSource.filterPredicate = (

            data: {
              quiz: string
            },
            filterValue: string
          ) =>

          data.quiz["title"]
          .trim()
          .toLowerCase()
          .indexOf(filterValue) !== -1;

        this.dataSource.paginator = this.paginator;
        this.dataSource.sort = this.sort;
      }, 100);

      this.isLoading = true;

    });
  }

Класс exam:

import { Quiz } from './quiz.model';
import { User } from './user.model';

export class Exam {
  key?: string;
  userKey: string;
  quiz: Quiz;
  user: string;
  correct: number;
  mistake: number;
  unanswered: number;
  insertDate: string;

}

запись, удаление , чтение данных из бд:

import { Injectable } from "@angular/core";
import { Exam } from "../models/exam.model";
import { mapToModel } from "../shared/utils/app.mapper";
import { AngularFireDatabase } from "@angular/fire/database";
import { User } from "firebase";

@Injectable({
  providedIn: "root"
})
export class ExamService {
  constructor(private db: AngularFireDatabase) {}

  add(exam: Exam) {
    this.db.list(`exams/`).push(exam);
  }

  get(key: string) {
    return this.db.object<Exam>(`exams/${key}`).valueChanges();
  }


  getAll() {
    return mapToModel(
      this.db
        .list<Exam>(`exams`, ref => ref.orderByChild("username"))
        .snapshotChanges()

    );
  }

  update(exam: Exam, key: string) {
    this.db.object(`exams/${key}`).update(exam);
  }

  delete(key: string) {
    this.db.object(`exams/${key}`).remove();
  }



  }

Ответы (0 шт):