我正在尝试使用Angular和Ionic 4在我的应用程序中实现Firebase登录/注册。我已经注册了帐户,但忘记了密码,可以在Firebase控制台中看到这些帐户。我遇到的问题是当我尝试登录到我创建的帐户时。在开发人员控制台中,我得到https://imgur.com/a/WzRiwtn:
code: "auth/invalid-email"
message: "The email address is badly formatted."
说问题出在我的tab3.page.ts:22
这是该页面上的代码
import { Component } from '@angular/core';
import { AlertController } from '@ionic/angular';
import { LoadingController, ToastController } from '@ionic/angular';
import { Router } from '@angular/router';
import { AngularFireAuth } from '@angular/fire/auth';
@Component({
selector: 'app-tab3',
templateUrl: 'tab3.page.html',
styleUrls: ['tab3.page.scss']
})
export class Tab3Page {
email: string = '';
password: string = '';
error: string = '';
constructor(private fireauth: AngularFireAuth,
private router: Router,
private toastController: ToastController,
public loadingController: LoadingController,
public alertController: AlertController) {
}
async openLoader() {
const loading = await this.loadingController.create({
message: 'Please Wait ...',
duration: 2000
});
await loading.present();
}
async closeLoading() {
return await this.loadingController.dismiss();
}
login() {
this.fireauth.auth.signInWithEmailAndPassword(this.email, this.password)
.then(res => {
if (res.user) {
console.log(res.user);
this.router.navigate(['/home']);
}
})
.catch(err => {
console.log(`login failed ${err}`);
this.error = err.message;
});
}
async presentToast(message, show_button, position, duration) {
const toast = await this.toastController.create({
message: message,
showCloseButton: show_button,
position: position,
duration: duration
});
toast.present();
}
}
自星期五以来,我一直在盯着这个问题,尝试使用多种不同的方法和在线指南,而我尝试的每种方法都遇到此错误,对您的帮助将不胜感激。该代码来自以下https://enappd.com/blog/email-authentication-with-firebase-in-ionic-4/38/教程,甚至查看了他的github并严格按照它来编写。
答案 0 :(得分:0)
根据您在此处显示的内容,电子邮件的初始值为空字符串:
email: string = '';
而且,据我所知,它永远不会改变价值。因此,您正在向signInWithEmailAndPassword
传递一个空字符串,这是无效的。
答案 1 :(得分:0)