Home > Blockchain >  Property 'uid' does not exist on type 'Promise<User>'.ts(2339)
Property 'uid' does not exist on type 'Promise<User>'.ts(2339)

Time:09-17

I am getting the following error in vscode:

Property 'uid' does not exist on type 'Promise'.ts(2339)

I'm also getting the same error with updateProfile:

Property 'updateProfile' does not exist on type 'Promise'.

Code:

export class SignupPage implements OnInit {

  email: string;
  pwd: string;
  username: string;

  constructor(public fs: AngularFirestore, public af: AngularFireAuth, public nav: NavController) { }

  signup() {
    this.af.createUserWithEmailAndPassword(this.email, this.pwd).then(() => {
      localStorage.setItem('usesrid', this.af.currentUser.uid);
      this.af.currentUser.updateProfile({
        displayName: this.username,
        photoURL: ''
      }).then(() => {
        this.nav.navigateRoot('/tabs')
      }).catch(err => {
        alert(err.message)
      })
    }).catch(err => {
      alert(err.message)
    })
  }
}

I'm new to Typescript so I'm not really sure what the cause of this error could be.
Thanks in advance.

CodePudding user response:

It seems your currentUser is a promise, so you need to use either await or then to get the actual user:

this.af.currentUser.then((user) => {
  user.updateProfile({
    ...
  • Related