Configureer beide transportinvoeren wanneer Firebase HTTP-aanroepen en het vernieuwen van inloggegevens dezelfde proxy moeten gebruiken. Een openbaar HTTP-eindpunt uit de HTTP-proxylijst heeft dezelfde twee overdrachten nodig:

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);

De twee belangrijke overdrachten zijn fromStream(serviceAccountStream, () -> transport) en setHttpTransport(transport). De eerste levert het HTTP-transport voor het verkrijgen van toegangstokens; de tweede levert het HTTP-transport van de Firebase-app. Alleen de ene instellen kan de andere op zijn standaardroute laten.

serviceAccountStream is de vertrouwde inloggegevensstroom van het serviceaccount van de app. Houd de app voor zijn werklast en geef hem vrij via de normale Firebase-levenscyclus. De proxy-instelling laat de hostnaam van de bestemming intact voor TLS-verificatie; zij vereist nog het vervangen van SDK-klassen noch een SSL-fabriek die alles vertrouwt.

De reikwijdte hier is de getoonde HTTP-interfaces. Een werklast die de WebSocket van Realtime Database of een ander servicetransport gebruikt, moet de routeringsondersteuning van dat transport apart laten controleren.

Gerelateerde artikelen