Użyj jednego transportu proxy dla Firebase Admin Java i odświeżania tokenów
Przekaż fabrykę transportu do GoogleCredentials i transport do FirebaseOptions, aby obie ścieżki HTTP korzystały z proxy.
Skonfiguruj oba wejścia transportu, gdy wywołania HTTP Firebase i odświeżanie danych uwierzytelniających mają używać tego samego proxy. Publiczny punkt końcowy HTTP wybrany z listy proxy HTTP wymaga tej samej pary przekazań:
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);Dwa ważne przekazania to fromStream(serviceAccountStream, () -> transport) i setHttpTransport(transport). Pierwsze dostarcza transport HTTP do uzyskiwania tokenów dostępu; drugie dostarcza transport HTTP aplikacji Firebase. Ustawienie tylko jednego może pozostawić drugie na jego domyślnej trasie.
serviceAccountStream to zaufany strumień danych uwierzytelniających konta usługi aplikacji. Zachowaj aplikację dla jej obciążenia i zwolnij ją przez zwykły cykl życia Firebase. Ustawienie proxy pozostawia nazwę hosta docelowego nietkniętą na potrzeby weryfikacji TLS; nie wymaga ani wymiany klas SDK, ani fabryki SSL ufającej wszystkiemu.
Zakres tutaj to pokazane interfejsy HTTP. Obciążenie korzystające z WebSocket Realtime Database lub innego transportu usługi wymaga osobnego sprawdzenia obsługi routingu tego transportu.