Я не опытный разработчик приложений для Android, это только мое первое приложение, в котором сказано, что это моя проблема. Я беру значение «company_name» из области Json менеджера, вызывая dataSnapshot из addListenerForSingleValueEvent и помещая значение в область Json получателя (я также сохраняю идентификатор менеджера «manager_id» в области Json получателя) пока что работает нормально. Теперь проблема заключается в чтении значения «company_name» из области получателя, чтобы заполнить его в списке с помощью firebaseUI, для некоторого rason я не могу понять, почему «manager_id» возвращается как строка, но «company_name» имеет значение null. Вот код: Получение значения для "company_name":возвращает 2 значения json из firebase, но один из них всегда равен нулю? Зачем?
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;
}
}
получить «manager_id» и «company_name» с помощью populateViewHolder firebaseUI:
@Override
protected void populateViewHolder(CompanyViewHolder viewHolder, CompanyItem model, int position) {
viewHolder.hText.setText(model.getCompanyName());
viewHolder.mText.setText(model.getManager_id());
}
Вот часть Json получателя в firebase базе:
{ "-KYVoYBRD4UEBL6GYKD_" :
{
"company_name" : "Dude Company",
"manager_id" : "a1b2c3d4"
}
}
Почему это возвращает "a1b2c3d4" за "manager_id", но нуль для "company_name"? Я пробовал так много разных вещей, но мне не удалось, и я искал в stackoverflow для ответа, но не смог найти тот, который близок к моей проблеме. Может ли кто-нибудь помочь?
изменить ваш сеттер/геттер для 'company_name 'в соответствии с форматом' manager_id' –
Пожалуйста, обновите свой вопрос, показывая обновленный код. –
@ScaryWombat, о мой! вы были правы, я изменил getCompanyName() на getCompany_name(), и это сработало по какой-то причине, я все еще не понимаю, я думал, что имя метода действительно не имеет значения. Но в любом случае я чувствую себя настолько глупо, и я благодарю вас за это! – user5125506