Firebase / Android: a adição de valores recuperados do Firebase ao arraylist retorna uma exceção de ponteiro nulo
Estou tentando adicionar os valores recuperados do banco de dados Firebase para uma matriz e, a partir daí, para uma matriz de seqüência de caracteres. Meu método de recuperação funciona bem. Posso imprimir todos os valores em um brinde. Mas, aparentemente, ele não é adicionado à lista de matrizes.
Aqui está o meu código para recuperação em onActivityCreated () da classe de fragmento.
ArrayList<String> allBrands = new ArrayList<>();
brandRef=FirebaseDatabase.getInstance().getReferenceFromUrl("https://stockmanager-142503.firebaseio.com/Brands");
q=brandRef.orderByChild("brandName");
q.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
allBrands.add((dataSnapshot.getValue(Brand.class)).getBrandName());
Toast.makeText(getActivity(),(dataSnapshot.getValue(Brand.class)).getBrandName(), Toast.LENGTH_SHORT).show();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
E é aqui que estou tentando usar o método arrayList no OnActivityResult () da classe Fragment, mas acredito que o loop do iterador não seja executado. A torrada não é vista. Estou recebendo uma exceção de ponteiro nulo quando tento trabalhar com a matriz. Presumo que os valores não sejam copiados para a matriz de marcas.
count=allBrands.size();
String[] brands=new String[count];
Iterator<String> itemIterator = allBrands.iterator();
if(itemIterator.hasNext()){
//brands[i] = itemIterator.next();
Toast.makeText(getActivity(), itemIterator.next(), Toast.LENGTH_SHORT).show();
// i++;
}
for( i=0;i<count;i++){
if(brands[i].compareTo(Brand)==0){
f=1;break;
}
}
Aqui está o meu banco de dados, caso isso ajude. Mas posso imprimir todos os valores recuperados em um Toast sem nenhum problema.