¿Qué sucede si no existe una URL de Firebase e intentamos agregarle un oyente?

Estoy desarrollando una aplicación en la que le pido al usuario que ingrese el nombre de la ciudad y el estado y que devuelva cierta ubicación en ese lugar. Pero el problema es que si el estado o ciudad especificados no existe en mi Firebase, entonces mi Diálogo de progreso, que se supone que debo descartar cuando el oyente se ha activado, continúa moviéndose y no se activa más la acción.

Aquí está esa parte de mi código:

// estado = obtener del usuario // ciudad = obtener del usuario


mapProgress.show();<p></p>

<p>firebase.child("markers").child(state).child(city).addChildEventListener(new ChildEventListener() {
                       @Override
                       public void onChildAdded(final DataSnapshot dataSnapshot, String s) {
                                mapProgress.dismiss();</p>

                            if (dataSnapshot.exists()) {
                                        //do something
                            }
                            else
                                Toast.makeText(MainActivity.this, "No data found!", 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(FirebaseError firebaseError) {
                            mapProgress.dismiss();
                            Toast.makeText(MainActivity.this, "Cancelled.", Toast.LENGTH_SHORT).show();
                        }
                    });
                }`

Respuestas a la pregunta(1)

Su respuesta a la pregunta