Naudokite vieną proxy transportą Firebase Admin Java ir žetonų atnaujinimui
Perduokite transporto fabriką GoogleCredentials ir transportą FirebaseOptions, kad abu HTTP keliai gautų proxy.
Sukonfigūruokite abi transporto įvestis, kai Firebase HTTP iškvietimai ir kredencialų atnaujinimas turi naudoti tą patį proxy. Viešas HTTP galinis taškas, pasirinktas iš HTTP proxy sąrašo, taip pat reikalauja tų pačių dviejų perdavimų:
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);Du svarbūs perdavimai yra fromStream(serviceAccountStream, () -> transport) ir setHttpTransport(transport). Pirmasis suteikia HTTP transportą prieigos žetonams gauti; antrasis suteikia Firebase programos HTTP transportą. Nustačius tik vieną, kitas gali likti savo numatytajame maršrute.
serviceAccountStream yra programos patikimas paslaugos paskyros kredencialų srautas. Išsaugokite programą jos darbo krūviui ir atlaisvinkite įprastu Firebase gyvavimo ciklu. Proxy nustatymas palieka paskirties hosto vardą nepakeistą TLS tikrinimui; jam nereikia nei SDK klasių pakeitimo, nei viskuo pasitikinčios SSL gamyklos.
Apimtis čia yra parodytos HTTP sąsajos. Darbo krūviui, naudojančiam Realtime Database WebSocket ar kitą paslaugos transportą, reikia atskirai patikrinti to transporto maršrutizavimo palaikymą.