Firebase Firestore 变量名称已更改

Khe*_*raj 2 android firebase firebase-realtime-database google-cloud-firestore

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

以下是我的用户名。

public String id;
public String name;
public String number;
public String profilePic;
public String shopPic;
Run Code Online (Sandbox Code Playgroud)

以下是截图,保存在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);
            }
        });
Run Code Online (Sandbox Code Playgroud)

Ale*_*amo 5

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

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

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

-keepattributes Signature //Global rule

-keepclassmembers class com.example.YourModelClass.** {
  *;
}
Run Code Online (Sandbox Code Playgroud)

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