2016-12-09 3 views
0

Я не опытный разработчик приложений для 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 для ответа, но не смог найти тот, который близок к моей проблеме. Может ли кто-нибудь помочь?

+0

изменить ваш сеттер/геттер для 'company_name 'в соответствии с форматом' manager_id' –

+0

Пожалуйста, обновите свой вопрос, показывая обновленный код. –

+0

@ScaryWombat, о мой! вы были правы, я изменил getCompanyName() на getCompany_name(), и это сработало по какой-то причине, я все еще не понимаю, я думал, что имя метода действительно не имеет значения. Но в любом случае я чувствую себя настолько глупо, и я благодарю вас за это! – user5125506

ответ

2

В соответствии мой комментарий

изменения ваш сеттер/геттер для company_name, чтобы соответствовать формату manager_id -

, например

getCompanyName() к getCompany_name()

Смежные вопросы