Kotlin-FirestoretoObject方法未按预期工作



我将Firestore用于我的Android项目,并使用以下代码将提取的文档转换为自定义数据类

val userData = user.toObject(UserData::class.java)!!

现在,当没有发生代码混淆时,这一行可以完美地工作,但是,通过混淆,这一行将不会失败,而是不会将user文档数据复制到userData。所以我认为问题可能在于Firestore和代码混淆。

其他人以前有过这个问题吗?

toObject()方法使用反射从用户文档中填充UserData模型。现在UserData类变得模糊了,Firestore无法将文档中的值映射到模型类。

要解决此问题,您需要对Firebase中使用的所有数据模型禁用代码模糊处理。

最简单的修复方法是将@Keep注释添加到数据类中。

@Keep
data class UserData(...)

如果您有很多这样的模型,您可以通过向proguard-rules.pro添加更多规则来禁用整个文件或包的obuscitation。

例如,当代码收缩和模糊时,此语句将保持model包中所有类的完整性:

-keep class com.example.app.data.models.** { *; }

查看文档了解更多此类规则。

相关内容

  • 没有找到相关文章

最新更新