0
私はログインユーザアカウントシステムを作成しようとしています。何らかの理由で、ホーム画面にナビゲートした後に誤ったパスワードを認識していました。 (私が参照しているコードはlogin()関数です)。私はこれと 'console.log(errorCode);を判断するためにコンソールログステートメントを入れます。出力される最後のものです。誰かが私が書いたコードの論理を説明してください、なぜ不正なパスワードが最後にしか認識されないのですか? コンソール出力の順番は 「ロギングに」 「ログイン仕上げ」 「AUTH /間違ったパスワード 「ホームへ移動します」ですか? 本当にありがとうございました。あなたは、成功/エラーケースを扱う必要ネイティブFirebase認証エラーに反して
import React, {Component} from 'react';
import {
View,
Text,
TouchableHighlight,
TouchableOpacity,
TextInput,
KeyboardAvoidingView
} from 'react-native';
import Input from './Input';
import Icon from 'react-native-vector-icons/MaterialIcons';
import {firebaseApp} from './App';
import {Tabs} from './Router';
import {StackNavigator, TabNavigator} from 'react-navigation';
import { Root } from './Router';
export default class LoginScreen extends Component {
constructor(props) {
super(props)
this.state = {
email: '',
password: '',
status: '',
success: ''
}
this.login = this.login.bind(this);
}
login(){
console.log("Logging in");
var errorCode;
var errorMessage;
firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).catch(function(error) {
errorCode = error.code;
console.log(errorCode);
errorMessage = error.message;
});
if (errorCode === 'auth/wrong-password') {
console.log("Wrong password");
alert('Wrong password.');
} else {
console.log("Navigate to Home");
this.props.navigation.navigate('Home');
}
//console.log(error);
console.log("Login finish");
/*firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).catch(function(error) {
console.log(error.code);
console.log(error.message);
})
this.props.navigation.navigate('Home');
console.log("Navigate to Home");*/
}
render() {
var styles = require('./Styles');
const {navigate} = this.props.navigation;
return(
<KeyboardAvoidingView behavior='padding' style={styles.loginContainer}>
<Text style={styles.loginHeader}>PRINCETON EVENTS</Text>
<TextInput
style={styles.loginInput}
placeholder="Email"
autoCapitalize='none'
onChangeText={(text) => this.setState({email: text})}
value={this.state.email}
returnKeyType='next'/>
<TextInput
secureTextEntry
style={styles.loginInput} placeholder="Password"
onChangeText={(text) => this.setState({password: text})}
value={this.state.password}
autoCapitalize='none'
returnKeyType='go'/>
<TouchableOpacity style={styles.loginButton}>
<Text style={styles.loginText} onPress={this.login}>LOGIN</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.loginButton}
onPress = {() => navigate('CreateAccount')}>
<Text style={styles.loginText}> CREATE ACCOUNT </Text>
</TouchableOpacity>
</KeyboardAvoidingView>
);
}
}