Свойство sendEmailVerification не существует для типа «void» - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь отправить подтверждение по электронной почте, а затем установить data.uid на user.id, независимо от того, куда я положил promise, всегда есть ошибка.

Вот мой код

onCreate(form: NgForm) {
var user = new User();
user.name = form.value.name;
user.email = form.value.email;
user.contact = form.value.contact;
if(form.value.gender == "male") {
  user.gender = "male";
} else {
  user.gender = "female"
}
let loading = this.mProv.getLoader('Creating your account...', 0);
loading.present();
var promise = this.afAuth.auth.createUserWithEmailAndPassword(form.value.email, form.value.password)
  .then(data => {
    user.id = data.uid;
    this.userProvider.addUser(user)
      .then(_ =>
        loading.dismiss()
      )
      .catch(error => {
        console.log(error);
        loading.dismiss();
        this.mProv.showAlertOkMessage('Error','Sign up error. Please try again later.');
      });
  })
  .catch(error => {
    console.log(error);
    loading.dismiss();
    this.mProv.showAlertOkMessage('Error','Sign up error. Please try again later.');
  });
  promise.then(function(user) {
    user.sendEmailVerification();

    // firebase.auth().currentUser.sendEmailVerification();

  }, function(error) {
    console.log(error)
  })
}

Сообщения об ошибках = Property 'sendEmailVerification' does not exist on type 'void'.

enter image description here

Если я поставлю обещание после .createUserWithEmailAndPassword

Сообщения об ошибках= Property 'uid' does not exist on type 'void'.

enter image description here

1 Ответ

0 голосов
/ 14 октября 2018

Typescript жалуется, что uid не существует для типа void, возможно, попробуйте изменить его следующим образом,

.then((data:any)=>{
   user.id = data.uid;
}
...