无法推送UserDetails类的对象

时间:2017-09-11 16:36:38

标签: android firebase

enter image description here我正在尝试将一个Object推送到Firebase数据库,当我创建一个“Case”类的对象并推送它时,它可以正常工作,尽管当我为“UserDetails”类执行相同操作时不行。

当要推送UserDetails对象并且应用程序关闭时,不会生成数据库条目...它不会给出任何强制关闭警告。

FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myRef = database.getReference("Login");
//myRef.child("users").setValue(new UserDetails("j","a"));//Doesn't work
myRef.child("users").setValue(new Case("j",0)); //Works

课程:

案例类

public class Case {
int vote;
String option;
ArrayList<String> iwant;
public Case(){
    vote=0;
    option="";
    iwant=new ArrayList<>();
}
public Case(String o,int v){
    vote=v;
    option=o;
    iwant=new ArrayList<>();
}
public void refreshvote(){
    vote=iwant.size();
}
public void newwant(String person){
        iwant.add(person);
        refreshvote();
    }
public void rmwant(String person){
    iwant.remove(person);
    refreshvote();
}

public boolean contains(String person){
    if(!iwant.contains(person))
        return false;
    else
    return true;
    }
public String getOption(){
    return option;
}
public int getVote(){
    return vote;
  }
} 

UserDetails类:

public class UserDetails {
String uname,password;

public UserDetails(){
    uname="";
    password="";
}
public UserDetails(String u, String p){
    uname=u;
    password=p;
}
public boolean auth(String requname,String reqpass){
    if((uname.equals(requname))&&(password.equals(reqpass))){
        return true;
    }
    else
    return false;

}

}

上面的图片显示我的控制台

FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myRef = database.getReference("Login");
myRef.child("users").setValue(new Case("j",0)); //Works

1 个答案:

答案 0 :(得分:0)

您不能在同一个孩子下添加具有不同结构的2个对象。你需要使用这样的东西:

myRef.child("user_details").setValue(new UserDetails("j","a"));
myRef.child("case").setValue(new Case("j",0));

或者,如果您希望为类提供更多属性,请向该特定类添加更多字段。

问题解决了将公共getter添加到UserDetails类。