JsonResponse 的 Firebase Auth 实例化失败

Gas*_*lén 1 android kotlin firebase firebase-authentication

我遇到了一个奇怪的问题,在调试模式下我的应用程序工作正常,我怀疑混淆器正在做一些我无法登录的事情。

错误

在此输入图像描述

混淆器文件

-keep class com.myapp.domain.model.** { *; }
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**
Run Code Online (Sandbox Code Playgroud)

所有序列化类都在模型包内,我即将发布一个新版本,上一个版本运行良好,我没有触及任何与 Proguard 相关的内容,只是 UI 更改。

我尝试过的

  • 失效/重启
  • 将 SHA-1 添加到 firebase 身份验证
  • 检查身份验证方法(用户名/密码)是否已启用
  • 检查 proguard 是否未关闭与身份验证相关的内容
  • 升级依赖

依赖关系

implementation 'com.google.firebase:firebase-auth-ktx:21.3.0'
implementation 'com.google.android.gms:play-services-auth:20.5.0'
Run Code Online (Sandbox Code Playgroud)

正如我提到的,调试模式工作正常,我怀疑我的 buildtype 配置出了问题(更多关于 minifyEnabled 的信息)

buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
Run Code Online (Sandbox Code Playgroud)

我看到了这个响应:Firebase 身份验证失败并出现 FirebaseException:JsonResponse 的实例化失败

但我无法禁用发布应用程序上的混淆

Gas*_*lén 12

好吧,看来问题是由以下原因引起的:

 Caused by: java.lang.Exception: s5.k: An internal error has occurred. [ Instantiation of JsonResponse failed! class com.google.android.gms.internal.firebase-auth-api.l0 ]
Run Code Online (Sandbox Code Playgroud)

我所做的是添加:

-keep class com.google.android.gms.internal.** { *; }
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro

  • 这些 ProGuard 规则应该由 Google 添加 (2认同)