我正在使用Ionic2 rc4和Firebase身份驗證。如果我撥打signupFirebaseUser()
,它會按預期記錄uid
。但是,當我打電話給loginGoogle()
時,我希望它記錄一個不同的uid
,但它打印相同uid
。Firebase登錄 - 如何重置uid?
這意味着用戶不能與email address
和password
登錄,註銷,然後重新與他們的谷歌帳戶(不同的電子郵件地址)登錄,因爲它要保留他們的老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
。
任何幫助表示讚賞。
一種方法可以使用user.delete()來刪除用戶,然後重新創建它會自動有一個新的UID – AndroidBeginner
是的,你是正確的,將工作。但是如果您想再次以舊用戶的身份重新登錄(即繼續交換用戶),會發生什麼情況?我不想刪除該帳戶,因爲我針對每個用戶存儲了數據。 – Richard
對不起,誤解了這個問題。您可以嘗試將新的Firebase Auth API用於Google登錄嗎? (https://firebase.google.com/docs/auth/web/google-signin)。如果您需要Cordova支持,則可以使用OAuth插件(例如https://github.com/nraboy/ng-cordova-oauth),然後使用返回的訪問令牌調用signInWithCredential()。 –