收到登录尝试的结果时,FirebaseAuthUI崩溃了

时间:2018-07-24 15:26:40

标签: android firebase firebase-authentication

所以我正在使用FirebaseAuthUi,当我从登录过程中收到请求时,我一直收到此错误:

com.firebase.ui.auth.FirebaseUiException:保存凭据时出错。

...

原因:com.google.android.gms.common.api.ApiException:16:当前应用程序的保存提示被禁用。要恢复,请从该设备上所有帐户的“密码智能锁定”设置的“从不保存”列表中删除此应用。

这是我的活动结果中的代码:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.i(TAG, "SignInFinished");
    if (requestCode == RC_SIGN_IN) {
        IdpResponse response = IdpResponse.fromResultIntent(data);

        if (resultCode == RESULT_OK) {
            if(buttonLastPressed){
                loadUserFromDataBase();
            }
            else{
                pushUserToDatabase();
            }
        } else {
            Log.i(TAG, "SignInError");
            if(response == null){
                return;
            }
            // Sign in failed. If response is null the user canceled the
            // sign-in flow using the back button. Otherwise check
            // response.getError().getErrorCode() and handle the error.

            response.getError().printStackTrace();

        }
    }
}

第二个日志“ SignInError”从不显示,所以我什至无法告诉用户登录失败。

我很确定可以通过进入设置并更改错误内容来解决此问题,但是由于错误部分永远不会运行,因此我无法告诉用户出了什么问题。他们返回启动登录过程的活动,没有迹象表明发生了任何变化。

1 个答案:

答案 0 :(得分:0)

希望这可以帮助某人:

在签名步骤之后,会提示您将凭据保存到智能锁。 取消此提示时,可能会导致崩溃,因为它会返回结果CANCELED。

如果您没有在项目中使用智能锁,或者如果不需要,则可以在配置签名方法时将其禁用。

因此,您将不会收到智能锁提示,并且签名结果将直接返回(RESULT_OK或RESULT_CANCELED等)

以下是有关如何从Firebase项目中禁用智能锁定的示例:

private final Intent signIn = AuthUI.getInstance()
    .createSignInIntentBuilder().setIsSmartLockEnabled(false)
    .setAvailableProviders(providers)
    .build();