Почему моя функция аутентификации Firebase больше не работает? - PullRequest
0 голосов
/ 25 ноября 2018

Я написал эту функцию Fire Auth пару месяцев назад, но когда я попробовал ее сегодня, она вернула мне следующую ошибку:

ОШИБКА TypeError: Невозможно прочитать свойство 'uid' из null

Я не могу понять, где я ошибся, потому что я не изменил ни один код.

Пользователь успешно вошел в систему в соответствии с Консолью Firebase.

Код:

login.ts, за которым следует login.html

import { Component } from '@angular/core';
import { IonicPage, NavController, ToastController, NavParams } from 'ionic-angular';

//Firebase imports
import { AngularFireAuth } from 'angularfire2/auth';

//Model import
import { User } from '../../models/user.interface';

//Page import 
import { HomePage } from '../home/home';

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage {

  oldUser = {} as User;

  constructor(
    private afAuth: AngularFireAuth,
    public navCtrl: NavController, 
    public navParams: NavParams,
    private toast: ToastController) {
  }

  async login(oldUser: User) {
    try {
      const result = this.afAuth.auth.signInWithEmailAndPassword(oldUser.email, oldUser.password);
      if (result) {
        this.navCtrl.setRoot(HomePage);
        this.toast.create({
          message: `We're all given the same hours in a day. Are you ready to maximise yours?`,
          duration: 3000
        }).present();
      } 
    }
    catch(e) {
      this.toast.create({
        message:   `Let's try again: ` + `${e}`.substr(7),
        duration: 2000
      }).present();
    }
  }
}
    <div class="list">
      <ion-item>
        <ion-input class="title" type="email" placeholder="Email Address" [(ngModel)]="oldUser.email"></ion-input>
      </ion-item>
    
      <ion-item>
        <ion-input class="title" placeholder="Password" clear-input type="password" [(ngModel)]="oldUser.password"></ion-input>
      </ion-item>
    </div>
    
    <button ion-button (click)="login(oldUser)">LOGIN</button>

Пожалуйста, помогите !!Спасибо!

1 Ответ

0 голосов
/ 26 ноября 2018

вам нужно проверить, существует ли пользователь 1, тогда сделайте yourlogic

 let user = this.fireAuth.auth.currentUser;
    if (user != null) {
      currentUser.id = user.uid;
      currentUser.email = user.email;
      // login logic ...
    }

подробнее здесь

...