我的firestore变量在cloud firestore中以其他名称保存。我认为这与 proguard 有关,但我不明白。
以下是我的用户名。
public String id;
public String name;
public String number;
public String profilePic;
public String shopPic;
这里是一些相关代码,很简单
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/