Konfigurieren Sie beide Transporteingaben, wenn Firebase-HTTP-Aufrufe und die Erneuerung von Anmeldedaten denselben Proxy verwenden sollen. Ein öffentlicher HTTP-Endpunkt aus der HTTP-Proxy-Liste benötigt dieselbe doppelte Übergabe:

var proxy = new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example.net", 8080));

var transport =
    new com.google.api.client.http.javanet.NetHttpTransport.Builder()
        .setProxy(proxy)
        .build();

var credentials = com.google.auth.oauth2.GoogleCredentials.fromStream(
    serviceAccountStream, () -> transport);

var options = com.google.firebase.FirebaseOptions.builder()
    .setCredentials(credentials)
    .setHttpTransport(transport)
    .build();

var app = com.google.firebase.FirebaseApp.initializeApp(options);

Die beiden wichtigen Übergaben sind fromStream(serviceAccountStream, () -> transport) und setHttpTransport(transport). Die erste liefert den HTTP-Transport zum Abrufen von Zugriffstoken; die zweite liefert den HTTP-Transport der Firebase-App. Wird nur eine gesetzt, kann die andere auf ihrer Standardroute bleiben.

serviceAccountStream ist der vertrauenswürdige Anmeldedaten-Stream des Dienstkontos der Anwendung. Behalten Sie die App für ihre Arbeit und geben Sie sie über den normalen Firebase-Lebenszyklus frei. Die Proxy-Einstellung lässt den Zielhostnamen für die TLS-Prüfung unverändert; sie erfordert weder den Austausch von SDK-Klassen noch eine SSL-Factory, die allem vertraut.

Der Umfang hier sind die gezeigten HTTP-Schnittstellen. Eine Arbeitslast mit Realtime-Database-WebSocket oder einem anderen Diensttransport muss die Routing-Unterstützung dieses Transports separat prüfen lassen.

Ähnliche Artikel