我是Angular的新手,所以请耐心等待 .

我想从firebase firestore获取当前登录用户的firstName,并在仪表板页面上显示它 . 但是当我尝试加载仪表板时,出现以下错误:

AdminOverviewComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property 'firstName' of undefined

at AdminOverviewComponent.push../src/app/admin/admin-overview/admin-overview.component.ts.AdminOverviewComponent.ngOnInit (admin-overview.component.ts:19)

at checkAndUpdateDirectiveInline (core.js:10097)

at checkAndUpdateNodeInline (core.js:11363)

at checkAndUpdateNode (core.js:11325)

at debugCheckAndUpdateNode (core.js:11962)

at debugCheckDirectivesFn (core.js:11922)

at Object.eval [as updateDirectives] (AdminOverviewComponent_Host.ngfactory.js? [sm]:1)

at Object.debugUpdateDirectives [as updateDirectives] (core.js:11914)

at checkAndUpdateView (core.js:11307)

at callViewAction (core.js:11548)

出现此错误后,将从firebase中检索firstName(因为我是console.log) . 我知道页面加载时,由于滞后提取,firstName为null,但是如何解决这个问题或者最好的方法是什么?

相关的HTML代码:

{{user}}

admin-overview-component.ts

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

import { AuthService } from '../../services/auth.service';

import { UserService } from '../../services/user.service';

@Component({

selector: 'app-admin-overview',

templateUrl: './admin-overview.component.html',

styleUrls: ['./admin-overview.component.css']

})

export class AdminOverviewComponent implements OnInit {

user: string;

constructor(private authService: AuthService, private userService: UserService) {

}

ngOnInit() {

this.user = this.userService.userInfo.firstName;

}

logoutUser() {

this.authService.logout()

}

}

user.service.ts

import { Injectable } from '@angular/core';

import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';

import { Observable } from 'rxjs/Observable';

import { AuthService } from './auth.service';

export class UserInfo {

Country: string;

age: string;

firstName: string;

lastName: string;

}

@Injectable()

export class UserService {

private userDoc: AngularFirestoreDocument;

public userInfo: UserInfo;

public gotData: boolean;

constructor(private db: AngularFirestore,private authService: AuthService) {

this.userDoc = db.doc('users/' + authService.getUserUID);

this.userDoc.valueChanges()

.take(1)

.subscribe(user => {

if (user) {

this.userInfo = user;

this.gotData = true;

console.log("Got Data: " + user.firstName);

}

else {

this.userInfo = null;

}

})

}

}

java定义属性错误_错误TypeError:无法读取未定义的属性'firstName'相关推荐

  1. html文件中未定义属性名错误,错误:无法读取未定义的属性已检查

    我正在尝试将已选中复选框的结果存储在本地存储中,但是当我尝试保存时,我得到上面提到的错误. 不太确定什么是未定义的,因为我在代码中看到了属性.这是代码: var getCheckboxValue = ...

  2. datatype未定义是什么意思_TypeError:无法读取未定义的属性'then'

    loginService.islogged() 上面的函数返回一个像"失败"的字符串 . 但是,当我尝试运行然后对它运行时,它将返回错误 TypeError: Cannot rea ...

  3. php类中使用未定义的属性说明

    一般情况下,在类中要使用一个属性,最好是先申明这个属性.否则就是给自己的挖坑了. 先来看以下一段代码, <?php class test_class{public function out(){ ...

  4. mysql未定义_以mysql_开始的未定义引用错误

    以mysql_开始的未定义引用错误 作者:佚名 来源:CNZZ 2008-12-26 当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ ...

  5. mysql未定义_以mysql_开始的未定义引用错误_MySQL

    以mysql_开始的未定义引用错误_MySQL 作者:小涵 | 来源:互联网 | 2018-04-19 15:15 阅读: 1682 以mysql_开始的未定义引用错误 当你链接到应用程序以使用MyS ...

  6. java定义boolean命名_阿里规范:为何boolean类型变量命名禁用is开头

    java中,对于非boolean类型的参数,getter和setpXMPater方法命名的规范是以get和set开头,如下: private String Success; public String ...

  7. 用java定义姓名年龄_编写Java程序,用于显示学生的姓名和年龄、专业。

    展开全部 java是面向对象的编程语言,一切皆e69da5e6ba9062616964757a686964616f31333363373832为对象.本题虽然基础,但是特别有代表性.在做这类java编 ...

  8. php属性未定义,PHP-警告-未定义的属性:stdClass-修复?

    我在错误日志中收到此警告,并想知道如何在代码中更正此问题. 警告:PHP注意:未定义属性:stdClass :: $ records在440行的script.php中 一些代码: // Parse o ...

  9. matlab中sym看不到值和属性,matlab 用sym定义了x,但是输入函数却显示“未定义函数或变量 'x'”?...

    答:亲,是syms x,或者是sym('x')来定义x是符号变量 答:matlab2018a中出现未定义函数或"ploy2sym",怎么改要分情况 情况一:符号变量 必须要定义,定 ...

最新文章

  1. SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板
  2. 微信公众号监听返回按钮问题解决
  3. 20155225 实验三《敏捷开发与XP实践》实验报告
  4. Android 开机自动启动服务
  5. mysql日期截取年月_摄影大赛丨“我遇见最美的光”第五届全国医务人员摄影大展 截稿日期2020年8月15日...
  6. 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第3篇]影响计算能力和存储能力的因素
  8. U盘安装Ubuntu
  9. I00028 整数逆序
  10. 《算法新解》读记(一)
  11. 红警 for Mac合集(Red Alert红色警戒)
  12. [IOS]使用UIScrollView和UIPageControl显示半透明帮助蒙板
  13. 俄罗斯方块代码 java_俄罗斯方块java代码-java编写俄罗斯方块代码详解分享
  14. wordpress插件_顶级WordPress反垃圾邮件插件
  15. 【附源码】Java计算机毕业设计安卓在线民宿预定app(程序+LW+部署)
  16. 手机建模下一步,人人可用的网页3D展示功能来了
  17. 中国电子学会2022年python六级考试真题大题 类与对象练习题
  18. java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)
  19. LFW人脸数据集相关
  20. PS制作海报操作技巧若干,问题若干,查看图片大小

热门文章

  1. 深圳德卡D3-U读写卡器windows(Java),linux(C)驱动开发
  2. 金融壹账通“壹账通记忆增强网络”获对话系统学术竞赛佳绩
  3. java过滤函数,过滤函数 (Sun Java System Portal Server 7.2 管理指南)
  4. 002数列极限的定义及数列的极限性质
  5. Java实现阿拉伯数字转换成罗马数字
  6. ARFoundation+Unity中遇到的问题
  7. 魅族浏览器android,魅族浏览器,Flyme让原配更懂你
  8. 推进快递产业融合,齐聚2023上海国际快递展-快递物流展
  9. 数据可视化Data-Driven Documents
  10. 重启linux系统的三种方法,强制重启Linux系统的几种方法