У меня есть приложение, в котором данные хранятся в локальном хранилище. Я хотел бы предоставить пользователю возможность (опционально) хранить его данные в облаке (firebase).
Пользователь получает доступ к определенной странице с помощью кнопки Синхронизировать (если она аутентифицирована) или формы входа / регистрации (если это не так)
У меня уже есть служба аутентификации и базы данных, но я не знаю, как и / или где «сохранить пользователя».
Когда я захожу на страницу синхронизации, она всегда показывает форму, потому что я не знаю, какой «флаг» использовать для сравнения.
Все примеры в сети показывают мне аутентификацию с помощью Login / Page и перенаправления. Мое приложение работает без регистрации. Мне просто нужно сохранить пользовательские данные, чтобы ему больше не приходилось регистрироваться.
Вот мой метод SigIn
isAuthenticated(): boolean {
return ????;
}
signUp(userInfo, appData): Promise<any> {
return firebase.auth().createUserWithEmailAndPassword( userInfo.email, userInfo.password )
.then((newUserCredential: firebase.auth.UserCredential) => {
delete userInfo.password;
firebase.database().ref(`/users/${newUserCredential.userInfo.uid}`)
.set(userInfo)
.then(() => {
firebase.database().ref(`progress/${newUserCredential.userInfo.uid}`)
.set( JSON.parse( JSON.stringify(appData) ))
.then(() => return true )
.catch(err => { throw err })
})
.catch(err => { throw err })
})
.catch(err => { throw err });
}
signInWithEmail(userInfo): Promise<any> {
return firebase.auth().signInWithEmailAndPassword( userInfo.email, userInfo.password )
.then((newUserCredential: firebase.auth.UserCredential) => {
this.userUID = newUserCredential.userInfo.uid;
})
.catch(err => { throw err });
}
signOut(): Promise<void> {
return firebase.auth().signOut();
}
Любые другие улучшения, которые вы могли бы предложить, я возьму. : D