2017-12-01 2 views
-2

Ich versuche eine einfache Chat-Anwendung mit Firebase zu erstellen. Die Registrierung von Benutzern in Firebase funktioniert. Wenn sie mit einer der registrierten Benutzernamen (E-Mail-Adresse) einzuloggen versucht, erhalte ich diese Fehlermeldung:Fehler beim Einloggen in Ionic 3 + Angular 4 + Firebase Mobilanwendung - Fehler: signInWithEmailAndPassword fehlgeschlagen: "email" muss eine gültige Zeichenfolge sein

Laufzeitfehler: Benutzername ist nicht

definiert

Benutzer seinen Benutzernamen in login.html geben und ich möchte um diesen Benutzernamen später auf der Seite chat.html zu verwenden. Dies wird die nächste Seite kommen nach dem Einloggen

login.html.

<ion-header> 
 
    <ion-navbar> 
 
    <ion-title> 
 
     Login 
 
    </ion-title> 
 
    </ion-navbar> 
 
</ion-header> 
 

 
<ion-content padding> 
 
    <ion-list> 
 

 
    <ion-item> 
 
    <ion-label floating>Username</ion-label> 
 
    <ion-input type="text" [(ngModel)]= "username"></ion-input> 
 
    </ion-item> 
 

 
    <ion-item> 
 
    <ion-label floating>Password</ion-label> 
 
    <ion-input type="text" [(ngModel)]= "password"></ion-input> 
 
    </ion-item> 
 

 
    </ion-list> 
 

 
    <div padding> 
 
    <button ion-button (click)="signInUser()">Sign in</button> 
 
    </div> 
 
</ion-content>

login.ts:

import { Component, ViewChild } from '@angular/core'; 
 
import { IonicPage, NavController, AlertController, NavParams } from 'ionic-angular'; 
 
import { AngularFireAuth } from 'angularfire2/auth'; 
 
import { ChatPage } from '../chat/chat'; 
 

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

 
export class LoginPage { 
 

 
    username: string= ''; 
 
    password: string= ''; 
 

 
    constructor(private fire: AngularFireAuth, public navCtrl: NavController, private alertCtrl: AlertController, public navParams: NavParams) { 
 
    } 
 

 
    ionViewDidLoad() { 
 
    console.log('ionViewDidLoad LoginPage'); 
 
    } 
 

 
    alert(message: string) { 
 
    this.alertCtrl.create({ 
 
     title: 'Info!', 
 
     subTitle: message, 
 
     buttons: ['OK'] 
 
    }).present(); 
 
    } 
 

 
    signInUser() { 
 
    username= this.username; 
 
    message= this.message; 
 
    
 
    this.fire.auth.signInWithEmailAndPassword(this.username, this.password).then(data=> { 
 
    console.log('got data', this.fire.auth.currentUser); 
 
    this.alert('Success! You\'re logged in'); 
 
    this.navCtrl.push(ChatPage); 
 

 
    }).catch(error => { 
 
     console.log('got an error', error); 
 
     this.alert(error.message); 
 
    }) 
 
    console.log('Would sign in with ', this.username, this.password) 
 
    } 
 
}

+2

bitte die Quellcodes hier anstelle von Links zu Bildern auf externen Websites enthalten – n00b

+0

Bitte fügen Sie Code, Fehler und Daten als ** Text ** ([unter Verwendung von Code Formatierung] (// stackoverflow.com/editing-help#code)), keine Bilder. Bilder: A) erlauben uns nicht zu kopieren - & - fügen Sie den Code/die Fehler/Daten zum Testen; B) erlauben keine Suche basierend auf dem Code/Fehler/Dateninhalt; und [viele weitere Gründe] (https://meta.stackoverflow.com/a/285557). In der Regel Code/Fehler/Daten im Textformat >>>> Code/Fehler/Daten als Bild >> nichts. Bilder sollten nur verwendet werden, * zusätzlich zu Text im Code-Format *, wenn das Bild etwas Bedeutendes hinzufügt, das nicht nur durch den Textcode/Fehler/Daten übermittelt wird. – Makyen

Antwort

0

Remove " .value“für die Variablen this.username und this.password von Ihrer signInWithEmailAndPassword() Funktion und überprüfen

+0

Danke! Jetzt bekomme ich diesen Fehler: Laufzeitfehler: Benutzername ist nicht definiert – Tio

+0

Könnten Sie Ihren login.ts Code hier aktualisieren? – Gowtham

+0

Ich habe es aktualisiert. Danke, dass du versucht hast zu helfen! – Tio

Verwandte Themen