如果应用程序是调试版本或发布版本,Firebase 会写入不同的文件

Nic*_*aro 4 firebase firebase-realtime-database

我刚刚发现 Firebase 有一些很奇怪的东西,我想知道是我做错了什么,或者是否有解决这个问题的方法。

基本上,这就是我在开发应用程序时一直写的内容(这正是我所期望的):

nscoachtools@gmail¸com maxMatches: 60 maxPlayers: 500 maxTeams: 30 userId: "SnMuRZEVqyN***...***hv2" userMail: "nscoachtools@gmail.com" userName: "Nicola Salvaro" userPicture: "https://lh4.googleusercontent.com/-L7lSPz0VJ9A/..." userToken: -1

这是我在发布模式下构建应用程序后所写的内容:

nsalvaro77@gmail¸com a: "Nicola Salvaro" b: "ESjqwuh***...***wg1" c: "nsalvaro77@gmail.com" d: "https://lh4.googleusercontent.com/-2kwSEmLEN1c/..." e: -2 f: 30 g: 500 h: 60 userToken: 1499775285255

每个“标题”都被一个字母代替。而 "e: " 应该是 "userToken: " 然后,当我尝试更新它时,它用正确的字符串写了它,但不是在原始值的顶部......只是写了一个新的。然后,当我尝试读取完整用户时,它会获得“e:”的值,而不是“userToken:”的值。

我做错什么了吗?

Fra*_*len 5

在发布模式下,您的 Android 应用程序正在被 Proguard 缩小。此过程去除未使用的方法并使其他方法名称更短。

因此,您的 POJO 类(您从 Firebase 读取/写入的类)正在获取新的方法名称,而 Firebase 会反射性地使用这些方法名称来确定 JSON 中的属性。

解决方案是告诉 Proguard 不要修改 POJO 的方法名称。

更多相关信息:


归档时间:

查看次数:

229 次

最近记录:

8 年,5 月 前