Einen Proxy-Transport für Firebase Admin Java und Token-Refresh verwenden
Übergeben Sie die Transport-Factory an GoogleCredentials und den Transport an FirebaseOptions, damit beide HTTP-Pfade den Proxy nutzen.
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.