存储经过身份验证的Firebase用户(Ionic 3)

时间:2019-06-05 17:24:05

标签: angular firebase ionic-framework ionic3

我有一个应用程序,其中数据保存在本地存储中。我想为用户提供一项功能(可选),将其数据存储在云中(firebase)。

用户使用“同步”按钮(如果已通过身份验证)或登录/注册表单(如果未通过)访问特定页面

我已经有身份验证和数据库服务,但是我不知道如何和/或在哪里“保存用户”。

当我访问同步页面时,它总是显示表单,因为我不知道要使用哪个“标志”进行比较。

网上的所有示例都向我展示了使用登录名/页面进行身份验证,然后重定向。我的应用程序无需注册即可正常运行。我只需要保留用户数据,这样他就不必再登录了。

这是我的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

0 个答案:

没有答案