Адзін транспарт проксі для Firebase Admin Java і абнаўлення токенаў
Перадайце фабрыку транспарту ў GoogleCredentials, а транспарт — у FirebaseOptions, каб абодва шляхі HTTP ішлі праз проксі.
Наладзьце абодва ўваходы транспарту, калі HTTP-выклікі Firebase і абнаўленне ўліковых даных павінны выкарыстоўваць адзін проксі. Публічная HTTP-кропка, выбраная з спісу HTTP-проксі, патрабуе тых жа двух перадач:
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);Дзве важныя перадачы — fromStream(serviceAccountStream, () -> transport) і setHttpTransport(transport). Першая дае HTTP-транспарт для атрымання токенаў доступу; другая дае HTTP-транспарт праграмы Firebase. Калі задаць толькі адну, другая можа застацца на стандартным маршруце.
serviceAccountStream — гэта давераны паток уліковых даных сэрвіснага акаўнта праграмы. Пакіньце праграму для яе работы і вызваліце праз звычайны жыццёвы цыкл Firebase. Наладка проксі не кранае імя хоста прызначэння для праверкі TLS; яна не патрабуе ні замены класаў SDK, ні SSL-фабрыкі, што давярае ўсім.
Абсяг тут — паказаныя HTTP-інтэрфейсы. Праца, што выкарыстоўвае WebSocket Realtime Database ці іншы транспарт сэрвісу, патрабуе асобнай праверкі падтрымкі маршрутызацыі гэтага транспарту.