2016-12-09 42 views
0

我不是一个有经验的android应用程序开发人员,这只是我的第一个应用程序,因为这里说的是我的问题。我通过调用addListenerForSingleValueEvent中的dataSnapshot并将值放入收件人的Json区域(我还将经理的ID“manager_id”存储在收件人的Json区域中),从经理的Json区域获取“company_name”的值,到目前为止,这工作正常。现在的问题是从接收者的区域读取值“company_name”,以使用firebaseUI将其填充到列表中,对于某些拉逊我无法弄清楚为什么“manager_id”作为字符串返回,但“company_name”为空。下面是代码: 获得了 “COMPANY_NAME” 的值:从firebase返回2个json值,但其中一个始终为空?为什么?

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

这里是火力数据库收件人的Json的一部分:

{ "-KYVoYBRD4UEBL6GYKD_" : 
    { 
    "company_name" : "Dude Company", 
    "manager_id" : "a1b2c3d4" 
    } 
} 

为什么它返回“a1b2c3d4”为“经理标识”,但空的“COMPANY_NAME”?我尝试了很多不同的东西,但没有成功,我通过stackoverflow搜索了一个答案,但找不到一个接近我的问题的答案。任何人都可以帮忙吗?

+0

变化为'COMPANY_NAME您的setter /吸气'匹配'manager_id'的格式 –

+0

请更新显示更新代码的问题。 –

+0

@ScaryWombat,哦,我的!你是对的我将getCompanyName()更改为getCompany_name()并且由于某种原因,我仍然不明白,我认为方法名称并不重要。但是,无论哪种方式,我觉得很蠢,我非常感谢你! – user5125506

回答

2

按我的意见

变化为COMPANY_NAME您的setter /吸气匹配经理标识的格式 -

例如

getCompanyName()getCompany_name()

相关问题