Firestore, чтобы получить единичные данные от угловых - PullRequest
0 голосов
/ 13 ноября 2018

Я новичок в угловой.Пожалуйста, помогите мне получить отдельные данные из пожарного магазина.Я получаю полные данные из базы данных, но мне нужны конкретные данные из базы данных.Это мой код для получения полных данных.Я упомянул два файла кода: первый - сервисный, а другой - для отображения кода.

service.ts

import { Injectable } from '@angular/core';
import { AngularFirestore,AngularFirestoreDocument,AngularFirestoreCollection } from '@angular/fire/firestore';
import { User } from '../models/user';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class RegisterService {
  private registerCollection : AngularFirestoreCollection<User>;
  private  resgisters : Observable<User[]>;
  private registerDocu : AngularFirestoreDocument<User>;

  constructor(public db : AngularFirestore) {
    this.registerCollection = db.collection<User>('Register');
    this.resgisters = db.collection('Register').valueChanges();

    this.resgisters = this.registerCollection.snapshotChanges().pipe(
      map(actions => {
        return actions.map(a => {
          const data = a.payload.doc.data();
          const id = a.payload.doc.id;
          return { id, ...data };
        });
      })
    );
    }
    addRegister(user: User) {
       this.registerCollection.add(user);
    }
    getRegister(){
      return this.resgisters;
    }

}

firestore image

Profile.page.тс

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AuthService } from '../../../services/auth.service';
import { LoggingService } from '../../../services/logging.service';
import { RegisterService } from '../../../services/register.service';
import { User } from '../../../models/user';

import * as firebase from 'firebase/app';

@Component({
  selector: 'app-profile',
  templateUrl: './profile.page.html',
  styleUrls: ['./profile.page.scss'],
})
export class ProfilePage implements OnInit {
  user : User[];

  constructor(private registerservice : RegisterService,private loggingService: LoggingService, private activatedRoute: ActivatedRoute, private authService: AuthService) { }

  ngOnInit() {
    this.registerservice.getRegister().subscribe(register => {
       this.user = register;
       console.log(this.user);
    });      
  } 
}

1 Ответ

0 голосов
/ 13 ноября 2018

Чтобы получить один объект из базы данных Firestore, вам нужно запросить документ. В зависимости от структуры кода метод getRegister () должен иметь вид:

getRegister(node) {
   return this.db.Doc<User>('Register/' + node).valueChanges();
}

Вы можете найти документацию на странице библиотеки github: https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md

...