【问题标题】:Firebase Set Value Putting Wrong Key On Released AppFirebase设置值将错误的键放在已发布的应用程序上
【发布时间】:2020-01-30 04:31:23
【问题描述】:

我有一个包含不同字段的用户模型类。 Firebase 有一个设置值方法,我们可以在其中传递对象,它会自动存储对象的值,并将相应的用户模型的项目名称作为节点的键。 我的应用在调试应用上运行良好。但是当我尝试使用发布应用设置值时,它会保存数据但键名不同,它是 c、d、i 等。

我正在初始化模型

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;
 }


 }

已发布应用的设置值

从调试应用设置值

【问题讨论】:

  • 我认为这是因为在应用程序的发布版本中使用了 proguard,使用 proguard 规则来保留模型类。
  • 感谢您的帮助。其实我是android新手,你能告诉我如何设置proguard规则来保持模型类。

标签: android firebase firebase-realtime-database


【解决方案1】:

我认为这是因为在应用程序的发布版本中使用了 proguard,使用 proguard 规则来保留模型类。

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多