android - Firebase firestore 变量名称已更改

标签 android firebase google-cloud-firestore

我的firestore变量在cloud firestore中以其他名称保存。我认为这与 proguard 有关,但我不明白。

以下是我的用户名。

public String id;
public String name;
public String number;
public String profilePic;
public String shopPic;

以下是屏幕截图,保存在 firestore 上。 sc

这里是一些相关代码,很简单

        FirestoreUrls.get().getAccountsCollection()
                .document().set(binding.getUser()).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                hideProgressBar();
                handleFirebaseException(getClass(), task, true);
            }
        });

最佳答案

您之所以遇到此问题,是因为您使用 Proguard 来确保安全,它会重新排列代码,以便其他人在您创建应用的 APK 后无法立即看到它。这也适用于 Firebase。要解决此问题,请在 build.gradle 文件中添加以下代码行:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

然后在项目的 Proguard 文件中添加以下规则,通过将包名称替换为您自己的包名称来防止这种行为:

-keepattributes Signature //Global rule

-keepclassmembers class com.example.YourModelClass.** {
  *;
}

请查看文档以获取更多信息:

关于android - Firebase firestore 变量名称已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382588/

相关文章:

javascript - 如何从javascript返回值在android中设置变量

android - 无法获取从服务类发送的 Activity 中的字符串

java - 如何使用 Android 在 Firestore 中添加时间戳?

firebase - 如何将我的标记从Firestore检索到Google Map?

Android TabHost 初始选项卡的文本颜色不正确

android - 即使应用程序未运行也能保持 FirebaseMessagingService 的服务并显示带有数据负载的通知

java - Android Firebase : Hashmap can't be cast to a given Object type

java - 如何将 RecyclerView 中显示的数据与 Firebase 中的文档关联

android - 当你在开发Android应用程序时,如果你想从Web服务器异步下载数据,你如何解决?

android - 如何使用安全规则防止用户删除Firebase数据库中某个路径下的所有数据?