public void waitOperation() {
   try {
     done.await();
     if (done.getFirebaseDatabaseException() != null) {
       throw done.getFirebaseDatabaseException();
     }
   } catch (InterruptedException e) {
     throw new UnexpectedException(e);
   }
 }
 public DataSnapshot getDataSnapshot() {
   return done.getDataSnapshot();
 }
 @Override
 public void onCancelled(DatabaseError databaseError) {
   done.setFirebaseDatabaseException(new FirebaseDatabaseException(databaseError));
   done.countDown();
 }
 @Override
 public void onDataChange(DataSnapshot snapshot) {
   done.setDataSnapshot(snapshot);
   done.countDown();
 }