如何从AngularFire2函数中提取数据

时间:2017-08-20 22:30:58

标签: angular typescript firebase angularfire2

我试图使用AngularFire2函数实例化变量。我的函数是authorizeUser(),但是当我尝试将该函数的结果分配给this.user时,它在控制台窗口中返回为'​​undefined'。

import  { Component, OnInit } from '@angular/core';

import { AngularFire } from 'angularfire2';

import { SignupService } from '../../../services/signup/signup.service';

@Component({
  selector: 'console',
  templateUrl: './console.component.html',
  styleUrls: ['./console.component.css']
})

export class ConsoleComponent implements OnInit {

  signups: any;
  user : any;

  constructor(
    public af: AngularFire,
    private signupService: SignupService
  ) {}

  getSignupsList() {
    this.signupService.getSignups().subscribe(signups => {
      this.signups = signups;
    });
  }

  authorizeUser() {
    this.af.auth.subscribe( afData => {
      this.user = afData.auth.email;
      });
  }

  ngOnInit() {
    this.getSignupsList();
    this.authorizeUser();
    console.log(this.user);

  }

  login() {
    this.af.auth.login();
  }

}

但是,如果我在承诺中控制日志,我会得到正在寻找的正确输出:

authorizeUser() {
    this.af.auth.subscribe( afData => {
      this.user = afData.auth.email;
      console.log(this.user);
      });
  }

我在这里缺少什么?我希望能够将afData.auth.email的输出分配给全局变量:user

1 个答案:

答案 0 :(得分:0)

用户变量的范围限定为组件。它不是全球性的。