[英]Firebase authentication via microsoft - Login tab not showing
從 firebaseauth 教程中獲取了一些復制粘貼代碼,以使用 Microsoft 身份驗證連接我的應用程序上的客戶端。 問題是,登錄屏幕沒有顯示
你可以在 這里找到完整的教程。
請注意,我確實復制了所有內容只是為了測試連接(不包括可選代碼,以簡化事情)
firebaseAuth.startActivityForSignInWithProvider 方法中的問題統計信息。 它總是以失敗告終。 跟蹤顯示此消息:“FirebaseAuthException...嘗試獲取您的包證書哈希時出錯。”
我完成了教程中的所有操作,包括在 Microsoft 和 Firebase 身份驗證屏幕上注冊我的應用程序。 我在 android studio 模擬器和實際設備上運行此代碼,結果相同
我的登錄功能:
public void signinToMicrosoft(Activity activity) {
OAuthProvider.Builder provider = OAuthProvider.newBuilder("microsoft.com");
Log.e(TAG,"Signing with microsoft");
Task<AuthResult> pendingResultTask = firebaseAuth.getPendingAuthResult();
if (pendingResultTask != null) {
// There's something already here! Finish the sign-in for your user.
pendingResultTask
.addOnSuccessListener(
new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Log.e(TAG,"Pending Success");
// User is signed in.
// IdP data available in
// authResult.getAdditionalUserInfo().getProfile().
// The OAuth access token can also be retrieved:
// authResult.getCredential().getAccessToken().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG,"Pending Failed: "+e.getMessage());
// Handle failure.
}
});
} else {
Log.e(TAG,"No Pending");
// There's no pending result so you need to start the sign-in flow.
// See below.
}
firebaseAuth
.startActivityForSignInWithProvider(activity, provider.build())
.addOnSuccessListener(
new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Log.e(TAG,"Auth Success");
// User is signed in.
// IdP data available in
// authResult.getAdditionalUserInfo().getProfile().
// The OAuth access token can also be retrieved:
// authResult.getCredential().getAccessToken().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG,"Auth Failed: "+e.getMessage() + "\nTrace: "+ e.getClass().getCanonicalName());
// Handle failure.
}
});
}
應該打開一個自定義的 chrome 選項卡並允許向 Microsoft 簽名,但它突然彈出並關閉。 如果有人遇到這個問題或為我解決了這個問題,我將不勝感激。 謝謝!
如果有人仍然遇到這個問題,我只想分享我的解決方案和與此類似的問題。
TL; 博士
您的 SHA-1 指紋可能會被另一個 Firebase 項目使用,因此請刪除該指紋或使用不同的密鑰庫進行簽名
長版
我使用不同的 Firebase 項目開發了一個具有開發和生產環境的項目。 我們使用 Firebase Auth 為我們的 Android 應用鏈接 Microsoft 登錄。 我在嘗試設置項目的開發環境時遇到與上述相同的錯誤。 我們過去只有一個 Firebase 環境,所以這從來都不是問題。
事實證明,當您在創建項目時未提供 SHA-1 指紋時,Firebase 會在您運行身份驗證調用時自動添加它們。 這意味着當我們為測試創建調試 APK 時,SHA-1 指紋被記錄到用於實時環境的 Firebase 項目中,因此當您嘗試在另一個項目中添加相同的指紋時,它不會讓您這樣做。 解決方案是在開發環境中包含 SHA-1 指紋,但要這樣做,您需要從實時環境中刪除指紋(在我的情況下)並等待該更改反映。 或者您可以使用不同的、未使用的密鑰庫進行簽名。
您需要在您的 android 上擁有 microsoft(hotmail、outlook ...)帳戶才能解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.