Firebase登录 - 如何重置uid?

时间:2017-01-30 14:46:23

标签: angular firebase ionic2 firebase-authentication angularfire2

我正在使用Ionic2 rc4和Firebase身份验证。如果我致电signupFirebaseUser(),它会按预期记录uid。但是,当我调用loginGoogle()时,我希望它会记录不同的uid,但会打印相同的uid

这意味着用户无法使用email addresspassword登录,注销,然后使用其Google帐户(不同的电子邮件地址)重新登录,因为它希望保留旧版{ {1}}。

uid

然后

signupFirebaseUser(email: string, password: string): firebase.Promise<any> {
    return this.fireAuth.createUserWithEmailAndPassword(email, password).then((newUser: firebase.User) => {
        console.log(newUser.uid);
        this.userProfile.child(newUser.uid).set({ email: email });
        newUser.sendEmailVerification();
    });
}

然后

public logout(auth: FirebaseAuth, fireAuth: firebase.auth.Auth): Promise<any> {
        return auth.logout().then(() => {
            fireAuth.signOut().then(() => {
            });
        });
}

问题

如何重置Firebase身份验证以忘记旧的 loginGoogle() { this.auth.login({ provider: AuthProviders.Google, method: AuthMethods.Popup }).then((data: FirebaseAuthState) => { console.log(data.uid); }).catch((error) => { console.error('loginGoogle', error); }); } ?因此,当您再次登录时,您可以从一个干净的开始这样做。

即。为每个提供商(Google,Facebook,电子邮件)生成新的uid

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您最有可能选择确保每个电子邮件地址只能有一个帐户(如果我没记错的话,这实际上是默认帐户)。要更改此选项,请前往https://console.firebase.google.com/project/_/authentication/providers,选择您的Firebase项目,向下滚动到“高级”部分,然后点击“每个电子邮件地址一个帐户”旁边的“更改”按钮。在那里,您可以设置如何处理同一电子邮件地址的帐户并关闭此行为。