Konfigurer begge transportinput, når Firebase HTTP-kald og fornyelse af legitimationsoplysninger skal bruge samme proxy. Et offentligt HTTP-endepunkt valgt fra HTTP-proxylisten kræver det samme par af overdragelser:

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 to vigtige overdragelser er fromStream(serviceAccountStream, () -> transport) og setHttpTransport(transport). Den første leverer HTTP-transporten til at hente adgangstokener; den anden leverer Firebase-appens HTTP-transport. Sætter man kun den ene, kan den anden blive på sin standardrute.

serviceAccountStream er appens betroede legitimationsstrøm for tjenestekontoen. Behold appen til dens arbejdsbyrde, og frigiv den via Firebaseens normale livscyklus. Proxyindstillingen lader destinationsværtens navn være intakt til TLS-verifikation; den kræver hverken udskiftning af SDK-klasser eller en SSL-fabrik, der stoler på alt.

Omfanget her er de viste HTTP-grænseflader. En arbejdsbyrde, der bruger Realtime Database WebSocket eller en anden tjenestetransport, kræver, at netop den transports routingunderstøttelse undersøges separat.

Relaterede artikler