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.

Artigos relacionados