所以我正在使用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”从不显示,所以我什至无法告诉用户登录失败。
我很确定可以通过进入设置并更改错误内容来解决此问题,但是由于错误部分永远不会运行,因此我无法告诉用户出了什么问题。他们返回启动登录过程的活动,没有迹象表明发生了任何变化。
答案 0 :(得分:0)
希望这可以帮助某人:
在签名步骤之后,会提示您将凭据保存到智能锁。 取消此提示时,可能会导致崩溃,因为它会返回结果CANCELED。
如果您没有在项目中使用智能锁,或者如果不需要,则可以在配置签名方法时将其禁用。
因此,您将不会收到智能锁提示,并且签名结果将直接返回(RESULT_OK或RESULT_CANCELED等)
以下是有关如何从Firebase项目中禁用智能锁定的示例:
private final Intent signIn = AuthUI.getInstance()
.createSignInIntentBuilder().setIsSmartLockEnabled(false)
.setAvailableProviders(providers)
.build();