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
答案 0 :(得分:0)
您不能在同一个孩子下添加具有不同结构的2个对象。你需要使用这样的东西:
myRef.child("user_details").setValue(new UserDetails("j","a"));
myRef.child("case").setValue(new Case("j",0));
或者,如果您希望为类提供更多属性,请向该特定类添加更多字段。
问题解决了将公共getter添加到UserDetails类。