在离子的应用程序,我想显示存储在火力的FireStore到应用数据(In ionic app, I

2019-10-29 07:19发布

在离子,我想显示用户的电子邮件和存储在公司的FireStore位置,但是用户的文档的FireStore ID是他们的电子邮件地址。 我怎样才能得到他们的数据,并显示他们

在authentication.ts

import { Injectable } from "@angular/core";
import { AngularFirestore } from '@angular/fire/firestore';
import * as firebase from 'firebase/app';

@Injectable()
export class AuthenticationService {

  constructor(private firestore: AngularFirestore){}

  registerUser(value){

     firebase.auth().createUserWithEmailAndPassword(value.email, value.password)

     this.firestore.doc(`users/${value.email}`).set({
      Email: value.email
    })
  }


  userDetails(){
    return firebase.auth().currentUser;
  }
}

在display.page.html

<ion-header>
  <ion-toolbar>
    <ion-title>
      User Welcome
    </ion-title>

  </ion-toolbar>
</ion-header>

<ion-content padding>

<div *ngFor="let item of info>
      <h1>{{ item.Email }}</h1> 
    </div>

  <ion-button (click)="logout()">Log Out</ion-button>
</ion-content>

在display.page.ts,我已经给代码添加电子邮件和位置,以公司的FireStore现在我要显示的数据我在做什么是

display.page.ts

ngOnInit(){

    this.authService.read().subscribe(data => {

      this.info = data.map(e => {
        return {
          Email: e.payload.doc.data()['Email'],
          Location: e.payload.doc.data()['Location'],
        };
      })
      console.log(this.info);
    });
}

在authentication.ts

read() {
    return this.firestore.collection('users').snapshotChanges();
  }

问题是,它显示所有的文件数据

Answer 1:

在你的服务,你可以使用这样的检索用户的数据:

getUser(id: string) {
   return this.firestore.collection('users').doc(id).get();
}

然后,你打电话给你的分量像这样通过你的密钥(你的情况的电子邮件)中此功能:

this.someService.getUser(email).then((value) => {
    console.log(value.data)
}


文章来源: In ionic app, I want to display the data stored in firebase firestore to the app