我不是一个经验丰富的Android应用程序开发人员,这只是我的第一个应用程序,其中说这是我的问题。我从管理器的Json区域获取“company_name”的值,方法是从addListenerForSingleValueEvent调用dataSnapshot,然后将值放入收件人的Json区域(我还将管理器的id“manager_id”存储在收件人的Json区域中),到目前为止工作正常。现在的问题是从接收者的区域读取值“company_name”,使用firebaseUI将其填充到列表中,对于某些rason,我无法弄清楚为什么“manager_id”以字符串形式返回,但“company_name”为null。这是代码: 获取“company_name”的值:
mManagersCompany.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
companyName = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
将其存储在收件人区域:
Map<String, Object> info = new HashMap<>();
info.put("company_name", companyName);
info.put("manager_id", manager_id);
mListOfManagers.push().updateChildren(info);
对象:
public class CompanyItem {
private String company_name;
private String manager_id;
public CompanyItem(){}
public CompanyItem(String company_name, String manager_id){
this.company_name = company_name;
this.manager_id = manager_id;
}
public String getCompanyName() {
return company_name;
}
public void setCompanyName(String companyName) {
this.company_name = companyName;
}
public String getManager_id() {
return manager_id;
}
public void setManager_id(String manager_id_entering) {
this.manager_id = manager_id_entering;
}
}
使用firebaseUI的populateViewHolder检索“manager_id”和“company_name”:
@Override
protected void populateViewHolder(CompanyViewHolder viewHolder, CompanyItem model, int position) {
viewHolder.hText.setText(model.getCompanyName());
viewHolder.mText.setText(model.getManager_id());
}
以下是firebase数据库中收件人Json的一部分:
{ "-KYVoYBRD4UEBL6GYKD_" :
{
"company_name" : "Dude Company",
"manager_id" : "a1b2c3d4"
}
}
为什么它为“manager_id”返回“a1b2c3d4”而对“company_name”返回null?我尝试了很多不同的东西,但我没有成功,我通过stackoverflow搜索了一个答案,但找不到一个接近我的问题。有人可以帮忙吗?
答案 0 :(得分:2)
根据我的评论
更改company_name的setter / getter以匹配manager_id的格式 -
例如
getCompanyName()
至getCompany_name()