我正在使用Ionic2 rc4和Firebase Authentication。如果我调用signupFirebaseUser()
,它会按预期记录uid
。但是,当我调用loginGoogle()
时,我希望它记录不同的uid
,但它打印相同的uid
。
这意味着用户无法使用email address
登录并password
、注销,然后使用其 Google 帐户(不同的电子邮件地址)重新登录,因为它希望保留其旧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(() => {
});
});
}
然后
loginGoogle() {
this.auth.login({
provider: AuthProviders.Google,
method: AuthMethods.Popup
}).then((data: FirebaseAuthState) => {
console.log(data.uid);
}).catch((error) => {
console.error('loginGoogle', error);
});
}
问题
如何重置火基身份验证以忘记旧uid
?这样,当您再次登录时,您将从头开始。
即为每个提供商(谷歌,Facebook,电子邮件)生成一个新的uid
。
任何帮助表示赞赏。
您很可能可以选择确保每个电子邮件地址只能有一个帐户(如果我没记错的话,这实际上是默认设置)。要更改此选项,请前往 https://console.firebase.google.com/project/_/authentication/providers,选择您的Firebase项目,向下滚动到"高级"部分,然后点击"每个电子邮件地址一个帐户"旁边的"更改"按钮。在那里,您可以设置如何处理同一电子邮件地址的帐户并关闭此行为。