Android: ¿caducan los tokens de autenticación de usuario de Firebase?

Decidi usarVolley e ir a la ruta RESTful conFirebase ya que sus oyentes parecen colgar cuando no hay conexión a internet. Al menos con Volley, me permite saber si una solicitud de red no tuvo éxito debido a una conexión a Internet o no.

Necesito saber siFirebaseUser los tokens de autenticación caducan o no. En mi aplicación, solo permito la autenticación de Google y Facebook, y uso el siguiente código suponiendo que el token de autenticación de usuario de Firebase NO caduque:

private String authToken;

// Callbacks

public interface ApiCallbacks {
    public void onSuccess(JSONObject response);
    public void onError(String errorString);
}

private interface AuthTokenCallbacks {
    public void onAuthTokenSuccess();
    public void onAuthTokenError(String errorString);
}

// Request Helpers

private void getAuthToken(final AuthTokenCallbacks callbacks) {
    // Lazy instantiation
    if (authToken == null) {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        if (user == null) {
            callbacks.onAuthTokenError("Please log in");
        } else {
            user.getToken(false).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
                @Override
                public void onComplete(@NonNull Task<GetTokenResult> task) {
                    if (task.isSuccessful()) {
                        authToken = task.getResult().getToken();
                        callbacks.onAuthTokenSuccess();
                    } else {
                        callbacks.onAuthTokenError("Please log in");
                    }
                }
            });
        }
    } else {
        callbacks.onAuthTokenSuccess();
    }
}

public void sendGetRequestTo(final String endpoint, final HashMap<String, String> arguments, final RequestQueue requestQueue, final String tag, final ApiCallbacks callbacks) {
    // Only execute get request if we have an auth token
    getAuthToken(new AuthTokenCallbacks() {
        @Override
        public void onAuthTokenSuccess() {
            final String requestUrl = getRequestUrlString(endpoint, arguments);
            JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, requestUrl, null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    callbacks.onSuccess(response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    callbacks.onError(error.toString());
                }
            });
            request.setTag(tag);
            requestQueue.add(request);
        }

        @Override
        public void onAuthTokenError(String errorString) {
            callbacks.onError("Please log in");
        }
    });
}

¿Es esta la forma correcta de hacerlo? Solo necesito saber si voy en la dirección correcta porque no quiero futuros problemas con la expiración de mis tokens de autenticación (si es que lo hacen).

EDITAR

Olvidé mencionar que mifinal String requestUrl = getRequestUrlString(endpoint, arguments); El método básicamente construye la cadena de solicitud de URL conauth=authTokenString agregado al final de mi url.

Respuestas a la pregunta(1)

Su respuesta a la pregunta