Gunakan Satu Transport Proxy untuk Firebase Admin Java dan Penyegaran Token
Teruskan pabrik transport ke GoogleCredentials dan transport ke FirebaseOptions agar kedua jalur HTTP memakai proxy.
Konfigurasikan kedua masukan transport saat panggilan HTTP Firebase dan penyegaran kredensial harus memakai proxy yang sama. Endpoint HTTP publik yang dipilih dari daftar proxy HTTP memerlukan pasangan penyerahan yang sama:
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);Dua penyerahan penting tersebut adalah fromStream(serviceAccountStream, () -> transport) dan setHttpTransport(transport). Yang pertama menyediakan transport HTTP untuk memperoleh token akses; yang kedua menyediakan transport HTTP aplikasi Firebase. Menyetel hanya satu dapat membiarkan yang lain pada rute bawaannya.
serviceAccountStream adalah aliran kredensial akun layanan tepercaya milik aplikasi. Pertahankan aplikasi untuk beban kerjanya dan lepaskan melalui siklus hidup Firebase yang biasa. Penyetelan proxy membiarkan nama host tujuan tetap utuh untuk verifikasi TLS; ini tidak memerlukan penggantian kelas SDK maupun pabrik SSL yang memercayai segalanya.
Cakupannya di sini adalah antarmuka HTTP yang ditunjukkan. Beban kerja yang memakai WebSocket Realtime Database atau transport layanan lain perlu memeriksa dukungan perutean transport tersebut secara terpisah.