Firebase / Android: al agregar valores recuperados de Firebase a la lista de reproducción, se devuelve una excepción de puntero nulo

Estoy intentando agregar los valores recuperados de la base de datos de Firebase a una Arraylist y, desde allí, a una matriz de cadenas. Mi método de recuperación funciona bien. Puedo tener todos los valores impresos en un brindis. Pero aparentemente no se agrega a la lista de arrays.

Aquí está mi código para recuperar en onActivityCreated () de la clase 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) {

            }
        });

Y aquí es donde estoy tratando de usar el arrayList en el método OnActivityResult () de la clase Fragment, pero creo que el bucle iterador no se ejecuta. El brindis no se ve. Recibo una excepción de puntero nulo cuando intento trabajar con la matriz. Supongo que los valores no se copian en la 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;
                                    }
                                }

Aquí está mi base de datos en caso de que ayude. Pero puedo imprimir todos los valores recuperados en un Toast sin ningún problema.

Respuestas a la pregunta(2)

Su respuesta a la pregunta