Android - Laufen Firebase-Benutzerauthentifizierungstoken ab?

Ich habe mich für @ entschiedVolley und gehe die RESTful Route mitFirebase da scheinen ihre Zuhörer zu hängen, wenn keine Internetverbindung besteht. Zumindest bei Volley wird mir mitgeteilt, ob eine Netzwerkanfrage aufgrund einer Internetverbindung nicht erfolgreich war oder nicht.

Ich muss wissen, obFirebaseUser auth Token verfallen oder nicht. In meiner App erlaube ich nur die Google- und Facebook-Authentifizierung und verwende den folgenden Code unter der Annahme, dass das Firebase-Benutzerauthentifizierungstoken NICHT abläuft:

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");
        }
    });
}

Ist das die richtige Vorgehensweise? Ich muss nur wissen, ob ich in die richtige Richtung gehe, da ich nicht möchte, dass zukünftige Probleme mit dem Ablauf meiner Authentifizierungstoken auftreten (falls sie ablaufen).

BEARBEITE

Ich habe vergessen zu erwähnen, dass meinfinal String requestUrl = getRequestUrlString(endpoint, arguments); -Methode erstellt im Grunde die URL-Anforderungszeichenfolge mitauth=authTokenString Am Ende meiner URL angehängt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage