Когда пользователь успешно входит в приложение user firebase username / password auth function. Я сохраняю зарегистрированного пользователя в asyncstorage телефона.
const user = await firebase
.auth()
.signInWithEmailAndPassword(this.state.email, this.state.password);
this.props.signInUser(user);
await AsyncStorage.setItem("user", JSON.stringify(user));
Тогда firebase.auth().currentUser
установлен правильно.
Однако, когда я перезагружаю приложение, я получаю пользователя из asyncStorage.
В моих проектах root Приложение. js:
useEffect(() => {
setTimeout(async () => {
let user;
user = null;
try {
user = await AsyncStorage.getItem("user");
} catch (e) {
console.log(e);
}
if (user) {
const parsedUser = JSON.parse(user);
// DO I NEED TO VALIDATE THIS SAVED USER TO FIREBASE?
// HOW DO I DO THIS?
store.dispatch({ type: "RETRIEVE_TOKEN", user: parsedUser });
} else {
store.dispatch({ type: "SHOW_LOGIN" });
}
}, 1000);
}, []);
Это не устанавливает firebase.auth (). CurrentUser ... Это необходимо?
Я пробовал войти в систему с помощью функции if (user) {}
. Но это не устанавливает firebase.auth (). CurrentUser. Также я получаю сообщение об ошибке: [Error: The custom token format is incorrect. Please check the documentation.]
.
if (user) {
const parsedUser = JSON.parse(user);
firebase
.auth()
.signInWithCustomToken(parsedUser.user.stsTokenManager.accessToken)
.catch(function (e) {
console.log(e);
});
console.log(firebase.auth().currentUser);
store.dispatch({ type: "RETRIEVE_TOKEN", user: parsedUser });
}
Любая помощь приветствуется.