Use un único transporte proxy para Firebase Admin Java e a actualización de tokens
Pase a fábrica de transporte a GoogleCredentials e o transporte a FirebaseOptions para que ambas as rutas HTTP reciban o proxy.
Configure as dúas entradas de transporte cando as chamadas HTTP de Firebase e a actualización de credenciais deban usar o mesmo proxy. Un extremo HTTP público escollido da lista de proxies HTTP necesita ese mesmo par de entregas:
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);As dúas entregas importantes son fromStream(serviceAccountStream, () -> transport) e setHttpTransport(transport). A primeira fornece o transporte HTTP para obter tokens de acceso; a segunda fornece o transporte HTTP da aplicación Firebase. Se só se define unha, a outra pode quedar na súa ruta predeterminada.
serviceAccountStream é o fluxo de credenciais de conta de servizo de confianza da aplicación. Manteña a aplicación para a súa carga de traballo e libérea polo ciclo de vida normal de Firebase. O axuste de proxy deixa intacto o nome de host de destino para a verificación TLS; non require substituír clases do SDK nin unha fábrica SSL que confíe en todo.
O alcance aquí son as interfaces HTTP mostradas. Unha carga de traballo que use o WebSocket de Realtime Database ou outro transporte de servizo necesita que se comprobe por separado o soporte de encamiñamento dese transporte.