Резюме:
Я использую Firebase для аутентификации. Я пытаюсь выделить, используя метод firebase signout (). После выхода пользователь переходит на сцену входа с помощью Actions.auth (). [auth - это имя моей формы входа в систему]
Проблема:
После использования выхода он правильно переходит на экран входа в систему.
Но когда я вхожу снова, он показывает мне пустой экран. И когда я занимаюсь какой-либо деятельностью, например коснитесь экрана в пустом месте, затем данные появятся снова.
Я думаю, что делаю что-то не так [очевидно, ха-ха], или мне не хватает некоторых основ.
Нужна помощь.
Все, что мне нужно, чтобы выйти из системы и перейти к экрану входа в систему.
1. Я создал действие в types.js
export const LOG_OUT_USER = 'log_out_user';
2. Я создал действие в AuthActions.js и импортировал сверху LOG_OUT_USER и добавил код, как показано ниже
export const logOutUser = () => dispatch => {
firebase.auth()
.signOut()
.then(() => {
console.log('Sign-out successful');
dispatch({ type: LOG_OUT_USER });
Actions.auth();
})
.catch(error => {
console.log(error);
});
};
3. в AuthReducer.js я импортировал 'LOG_OUT_USER' и добавил регистр, как показано ниже
const INITIAL_STATE = {
email: '',
password: '',
user: null,
error: '',
loading: false
};
case LOG_OUT_USER:
return INITIAL_STATE;
4. Я добавил кнопку выхода из списка сотрудников.
//imported the action
import { employeesFetch, logOutUser } from '../actions';
//added function after 'componentWillReceiveProps' function
onButtonPressLogout() {
console.log('logout');
this.props.logOutUser();
}
//added card section with logout button
<CardSection>
<Button onPress={this.onButtonPressLogout.bind(this)}>
Log Out
</Button>
</CardSection>
//exported at the bottom
export default connect(mapStateToProps, { employeesFetch, logOutUser })(EmployeeList);
Если вы хотите посмотреть репо: https://github.com/hemantc09/react-native-Manager-Employee-App
Просто скачайте и запустите команду: - react-native run-ios
Ouput:
Первый вход в систему:
После выхода из системы и повторного входа: показывает. Пустой экран.
В консоли я вижу, что пользовательские данные все еще печатаются даже после выхода из системы.
Что мне здесь не хватает.
Если вы хотите посмотреть с помощью testflight, дайте мне знать. Я пришлю вам приглашение.