Установка значения Firebase Неправильный ключ на выпущенном приложении - PullRequest
0 голосов
/ 30 января 2020

У меня есть класс usermodel с разными полями. Firebase имеет метод set value, в котором мы можем передать объект, и он автоматически сохранит значение объекта с соответствующим именем элемента пользовательской модели в качестве ключа узла. Мое приложение работает нормально на отладочном приложении. Но когда я пытаюсь установить значение с помощью приложения выпуска, оно сохраняет данные, но имя ключа не совпадает, это c, d, i et c .

Я инициализирую модель

userModel = new UserModel(mUser.getDisplayName(), mUser.getPhotoUrl().toString(), inputUname, url, 
ratings, questions, instanceIdResult.getToken(), noti_settings);

мой класс модели

 public class UserModel implements Serializable {
 private String uName,uDp,userName,profileLink;
 private ArrayList<RatingModel> ratings;
 private ArrayList<QuestionModel> questions;
 private String token;
 private NotificationModel noti_settings;

 public UserModel(String uName, String uDp, String userName) {
    this.uName = uName;
    this.uDp = uDp;
    this.userName = userName;
 }

 public UserModel(String uName, String uDp, String userName, String profileLink, 
 ArrayList<RatingModel> ratings, ArrayList<QuestionModel> questions, String token) {
    this.uName = uName;
    this.uDp = uDp;
    this.userName = userName;
    this.profileLink = profileLink;
    this.ratings = ratings;
    this.questions = questions;
    this.token = token;
 }

 public UserModel(String uName, String uDp, String userName, String profileLink, 
 ArrayList<RatingModel> ratings, ArrayList<QuestionModel> questions, String token, NotificationModel 
 noti_settings) {
    this.uName = uName;
    this.uDp = uDp;
    this.userName = userName;
    this.profileLink = profileLink;
    this.ratings = ratings;
    this.questions = questions;
    this.token = token;
    this.noti_settings = noti_settings;
 }

 public NotificationModel getNoti_settings() {
    return noti_settings;
 }

 public void setNoti_settings(NotificationModel noti_settings) {
    this.noti_settings = noti_settings;
 }

 public String getToken() {
    return token;
 }

 public void setToken(String token) {
    this.token = token;
 }

 public ArrayList<QuestionModel> getQuestions() {
    return questions;
 }

 public void setQuestions(ArrayList<QuestionModel> questions) {
    this.questions = questions;
 }

 public ArrayList<RatingModel> getRatings() {
    return ratings;
 }

 public void setRatings(ArrayList<RatingModel> ratings) {
    this.ratings = ratings;
 }

 public String getProfileLink() {
    return profileLink;
 }

 public void setProfileLink(String profileLink) {
    this.profileLink = profileLink;
 }

 public String getuName() {
    return uName;
 }

 public void setuName(String uName) {
    this.uName = uName;
 }

 public String getuDp() {
    return uDp;
 }

 public void setuDp(String uDp) {
    this.uDp = uDp;
 }

 public String getUserName() {
    return userName;
 }

 public void setUserName(String userName) {
    this.userName = userName;
 }


 }

Установка значения из выпущенного приложения

enter image description here

Установочное значение из приложения отладки

enter image description here

1 Ответ

2 голосов
/ 30 января 2020

Я думаю, что из-за использования Proguard в версии выпуска приложения используйте правила Proguard, чтобы сохранить класс модели.

-keep class com.xyz.data.models.** { *; } //path to package containing your model class

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...