Хранение аутентифицированного пользователя Firebase (Ionic 3) - PullRequest
1 голос
/ 05 июня 2019

У меня есть приложение, в котором данные хранятся в локальном хранилище. Я хотел бы предоставить пользователю возможность (опционально) хранить его данные в облаке (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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...