簡體   English   中英

如何檢查登錄 Firebase 用戶是否有密碼

[英]How to check if signed in Firebase user has a Password

我的應用程序使用 Firebase 身份驗證和兩個提供商(電子郵件/密碼和 Google 登錄),但我要求我的所有用戶都有密碼,以便他們可以使用這些提供商中的任何一個登錄,現在我的問題是我希望每個登錄的用戶應提示使用不同於電子郵件/密碼的提供商立即創建密碼,但我在 SDK 中找不到任何方法來檢查用戶是否有密碼。

我嘗試使用以下方法進行檢查,但根據我的觀察,這僅檢查用戶用於注冊的提供者。

for(UserInfo info : currentUser.getProviderData()) {
    if(!info.getProviderId().equals("password")) {
        ShowUpdateUserPasswordDialog("CREATE",currentUser);
    } else {
        MoveToMainActivity();
    }
    break;
}

我要求我的所有用戶都有密碼,以便他們可以使用這些提供商中的任何一個登錄

使用 email 和密碼的 Firebase 身份驗證與使用 Google 提供商的身份驗證是完全不同的身份驗證機制。

現在我的問題是我希望使用不同於電子郵件/密碼的提供商登錄的每個用戶都應該被提示立即創建密碼

如果用戶選擇使用 Google 登錄,為什么要強制他輸入密碼? 這就是整個想法,不再使用密碼。 除此之外,您甚至可以讓用戶從一開始就選擇使用哪種身份驗證。 強迫用戶選擇一個,或另一個,或兩者兼而有之,這是一種糟糕的用戶體驗。

但是,如果您仍然想強制用戶選擇密碼,您首先需要從 Google 和 Firebase 注銷用戶,以便可以使用 email 和密碼再次登錄。 您可以靜默執行此操作,但如果用戶想要為已在使用的 Gmail 帳戶選擇密碼,情況如何? 在這種情況下,您會收到一條錯誤消息,指出具有特定 email 的帳戶已經存在。

但我在 SDK 中找不到任何方法來檢查用戶是否有密碼

你沒有找到類似的東西,因為這樣的東西不存在。

恕我直言,某種操作可能被認為是不好的做法,我看不出有任何理由這樣做。 您應該讓用戶根據自己的意願選擇認證類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM