所以我正在使用 FirebaseAuthUi,当我收到来自登录进程的请求时,我不断收到此错误:
com.firebase.ui.auth.FirebaseUiException:保存凭据时出错。
...
原因:com.google.android.gms.common.api.ApiException: 16: 当前应用的保存提示被禁用。要恢复,请将此应用程序从 Smart Lock for Passwords 设置中此设备上所有帐户的“从不保存”列表中删除。
这是我的 Activity 结果中的代码:
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”从不显示,所以我什至无法告诉用户登录失败。
我很确定我可以通过进入设置并更改错误内容来解决此问题,但由于错误部分从未运行,我无法告诉用户出了什么问题。他们返回到启动登录过程的 Activity ,并且没有任何迹象表明发生了任何变化。
最佳答案
希望这可以帮助某人:
签名步骤后,会提示将凭据保存到智能锁。
当您取消此提示时,可能会发生崩溃,因为它返回结果 CANCELED。
如果您没有在项目中使用智能锁或者没有必要,您可以在配置签名方法时禁用它。
因此,您将不会收到智能锁提示,并且签名结果将直接返回(RESULT_OK 或 RESULT_CANCELED 等)
以下是有关如何从您的 firebase 项目中禁用智能锁的示例:
private final Intent signIn = AuthUI.getInstance()
.createSignInIntentBuilder().setIsSmartLockEnabled(false)
.setAvailableProviders(providers)
.build();
关于android - 收到登录尝试的结果时,FirebaseAuthUI 使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502414/