1

Я пытаюсь сделать регистрационные формы для своего веб-приложения с помощью угловых Fire2 и Firebase.Ошибка аутентификации AngularFire2: первый аргумент «email» должен быть допустимой строкой

Я получаю сообщение об ошибке при регистрации пользователей и передаче их в функцию signInWithEmailAndPassword.

signInWithEmailAndPassword failed: First argument "email" must be a valid string.

У меня есть все, что в моем компоненте, который имеет дело с переменным электронной напечатанным в виде строки, и он входит в консоль в виде строки, так что я не знаю точно, что происходит.

Я исследовал в течение почти 3 часов и не могу найти ничего, что могло бы решить проблему.

Шаблон:

<form action="" class="login"> 
    <input type="email" name="loginEmail" id="loginEmail" placeholder="email" [(ngModel)]="signInEmail"> 
    <input type="password" name="loginPassword" id="loginPassword" placeholder="password" [(ngModel)]="signInPassword"> 
    <a href="#">Forgot Password?</a> 
    <button type="submit" (click)="login(signInEmail, signInPassword)">Sign In</button> 
</form> 

Компонент:

// Sign In 
    signInEmail: string; 
    signInPassword: string; 

    constructor(private _songsService: SongService, private _router: Router, public af: AngularFire) { 
    this.backgroundImage = '../images/main-bg.jpg'; 
    this.logoIcon = '../images/logo-icon.png'; 
    } 

    login(email, password) { 
    console.log('login'); 
    this.af.auth.login(email, password); 
    } 

NgModule

const firebaseAuthConfig = { 
    provider: AuthProviders.Password, 
    method: AuthMethods.Password 
} 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    routing, 
    HttpModule, 
    JsonpModule, 
    FormsModule, 
    AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig) 
+0

Можете ли вы отправить электронную почту, которую вы пытаетесь войти в систему с? Возможно, это неверный. –

+0

Это мой личный адрес электронной почты, и это действительный адрес электронной почты. –

+0

Вы попробовали 'console.log' (email, password)' в функции входа? –

ответ

2

Подпись для af.auth.login() один объект с двумя свойствами:

// Email and password 
af.auth.login({ 
    email: '[email protected]', 
    password: 'password', 
}, 
{ 
    provider: AuthProviders.Password, 
    method: AuthMethods.Password, 
}) 

https://github.com/angular/angularfire2/blob/master/docs/5-user-authentication.md

... if you're using username and password, then you'll have to call af.auth.login() with the user's credentials.

af.auth.login({ email: 'email', password: 'pass' });

+0

Yup! Ты прав. Полностью пропустил объект! Спасибо! –