使用Angular 8从Firebase获取单个用户

使用Angular 8从Firebase获取单个用户,angular,typescript,firebase,firebase-authentication,Angular,Typescript,Firebase,Firebase Authentication,我从一个月开始学习Angular,为了练习,我决定制作一个网站。 我用Firebase配置了一个数据库,在这里我保存了我用户的数据,并且知道我想让用户能够编辑他的数据 为了更精确,我使用Firebase的身份验证来创建帐户,此时我保存与此帐户关联的UID以在实时数据库中进行设置,并在注册后提供有关用户的更多信息 为此,我在数据库中设置Firebase提供的uid,然后我想让当前用户访问保存相同uid的数据,以便他可以编辑这些数据 但是,我没有成功地获得与特定用户对应的数据。以下是我尝试的代码:

我从一个月开始学习Angular,为了练习,我决定制作一个网站。 我用Firebase配置了一个数据库,在这里我保存了我用户的数据,并且知道我想让用户能够编辑他的数据

为了更精确,我使用Firebase的身份验证来创建帐户,此时我保存与此帐户关联的UID以在实时数据库中进行设置,并在注册后提供有关用户的更多信息

为此,我在数据库中设置Firebase提供的uid,然后我想让当前用户访问保存相同uid的数据,以便他可以编辑这些数据

但是,我没有成功地获得与特定用户对应的数据。以下是我尝试的代码:

ngOnInit() {
    firebase.auth().onAuthStateChanged(
      (user) => {
        if (user) {
          console.log(user.uid);
          this.userService.getUserFromServer();
          this.prenom = this.userService.getUserbyKey(user.uid).prenom;
          this.nom = this.userService.getUserbyKey(user.uid).nom;
          this.pseudo = this.userService.getUserbyKey(user.uid).pseudo;
          this.ville = this.userService.getUserbyKey(user.uid).ville;
          this.enfants = this.userService.getUserbyKey(user.uid).enfants;
          this.hobbies = this.userService.getUserbyKey(user.uid).hobbies;
          this.editForm = this.formBuilder.group({ edit: [], })
        } else { console.log('No user connected') }
      }
    );
  }
基于此模型:(密钥是用户创建帐户时生成的user.uid)

下面是“getUserbyKey”方法:

但是,当我尝试访问链接到此ngOnInit()的页面时,总是会出现以下错误:

错误:“未捕获(承诺中):类型错误:this.userService.getUserbyId(…)未定义


ngOnInit/您尚未在服务文件GetUserBy中定义此函数实际上已定义,我只是忘记实现重新启动服务器,但我现在更改了此函数的名称:ERROR TypeError:“this.userService.getUserbyKey(…)未定义”。但它已定义,因此我不理解此错误
    constructor(
        public key: string,
        public prenom: string,
        public nom: string,
        public pseudo: string,
        public ville: string,
        public enfants: string,
        public hobbies?: string[]
    ) { }
getUserbyKey(key: string) {
        const singleUser = this.users.find(
            (s) => {
                return s.key === key;
            }
        );
        return singleUser;
    }