Bruk éin proxy-transport for Firebase Admin Java og tokenfornying
Send transportfabrikken til GoogleCredentials og transporten til FirebaseOptions slik at begge HTTP-vegane får proxyen.
Konfigurer begge transportinngangane når Firebase HTTP-kall og fornying av legitimasjon skal bruke same proxy. Eit offentleg HTTP-endepunkt valt frå HTTP-proxylista treng det same paret av overleveringar:
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);Dei to viktige overleveringane er fromStream(serviceAccountStream, () -> transport) og setHttpTransport(transport). Den første leverer HTTP-transporten for å hente tilgangstoken; den andre leverer HTTP-transporten til Firebase-appen. Set ein berre éin, kan den andre bli verande på standardruta si.
serviceAccountStream er den klarerte legitimasjonsstraumen til tenestekontoen til appen. Hald appen for arbeidslasta og slepp han gjennom den vanlege Firebase-livssyklusen. Proxyinnstillinga lèt vertsnamnet til destinasjonen stå urørt for TLS-verifisering; ho krev korkje utskifting av SDK-klassar eller ei SSL-fabrikk som stolar på alt.
Omfanget her er dei viste HTTP-grensesnitta. Ei arbeidslast som brukar WebSocket frå Realtime Database eller ein annan tenestetransport, må få støtta for ruting i den transporten kontrollert separat.