代码之家  ›  专栏  ›  技术社区  ›  Vivek Modi

Firestore从angular获取单个数据

  •  1
  • Vivek Modi  · 技术社区  · 7 年前

    这是angular获取完整数据的代码。我已经提到了两个代码文件第一个是服务,另一个是显示代码。

    服务.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

    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 回复  |  直到 7 年前
        1
  •  1
  •   Lucian Moldovan    7 年前

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

    您可以在library github页面上找到文档: https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md

    推荐文章