我正在使用Ionic2 rc4和Firebase身份验证。如果我致电signupFirebaseUser()
,它会按预期记录uid
。但是,当我调用loginGoogle()
时,我希望它会记录不同的uid
,但会打印相同的uid
。
这意味着用户无法使用email address
和password
登录,注销,然后使用其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
。
任何帮助表示感谢。
答案 0 :(得分:0)
您最有可能选择确保每个电子邮件地址只能有一个帐户(如果我没记错的话,这实际上是默认帐户)。要更改此选项,请前往https://console.firebase.google.com/project/_/authentication/providers,选择您的Firebase项目,向下滚动到“高级”部分,然后点击“每个电子邮件地址一个帐户”旁边的“更改”按钮。在那里,您可以设置如何处理同一电子邮件地址的帐户并关闭此行为。