Folosiți un singur transport proxy pentru Firebase Admin Java și reîmprospătarea tokenurilor
Transmiteți fabrica de transport către GoogleCredentials și transportul către FirebaseOptions, astfel încât ambele căi HTTP să primească proxy-ul.
Configurați ambele intrări de transport când apelurile HTTP Firebase și reîmprospătarea acreditărilor trebuie să folosească același proxy. Un punct final HTTP public ales din lista de proxy-uri HTTP are nevoie de aceeași pereche de predări:
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);Cele două predări importante sunt fromStream(serviceAccountStream, () -> transport) și setHttpTransport(transport). Prima furnizează transportul HTTP pentru obținerea tokenurilor de acces; a doua furnizează transportul HTTP al aplicației Firebase. Setarea doar a uneia poate lăsa cealaltă pe ruta sa implicită.
serviceAccountStream este fluxul de acreditări de cont de serviciu de încredere al aplicației. Păstrați aplicația pentru sarcina sa și eliberați-o prin ciclul de viață normal Firebase. Setarea proxy lasă numele de gazdă al destinației intact pentru verificarea TLS; nu necesită nici înlocuirea claselor SDK, nici o fabrică SSL care are încredere în tot.
Domeniul de aici îl reprezintă interfețele HTTP prezentate. O sarcină care folosește WebSocket-ul Realtime Database sau un alt transport de serviciu trebuie să verifice separat suportul de rutare al acelui transport.