Gunakan Satu Pengangkutan Proksi untuk Firebase Admin Java dan Muat Semula Token
Hantar kilang pengangkutan kepada GoogleCredentials dan pengangkutan kepada FirebaseOptions supaya kedua-dua laluan HTTP menerima proksi.
Konfigurasikan kedua-dua input pengangkutan apabila panggilan HTTP Firebase dan muat semula kelayakan mesti menggunakan proksi yang sama. Titik akhir HTTP awam yang dipilih daripada senarai proksi 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 ialah fromStream(serviceAccountStream, () -> transport) dan setHttpTransport(transport). Yang pertama membekalkan pengangkutan HTTP untuk mendapatkan token akses; yang kedua membekalkan pengangkutan HTTP aplikasi Firebase. Menetapkan hanya satu boleh membiarkan yang lain pada laluan lalainya.
serviceAccountStream ialah aliran kelayakan akaun perkhidmatan yang dipercayai bagi aplikasi. Kekalkan aplikasi untuk beban kerjanya dan lepaskannya melalui kitaran hayat Firebase biasa. Tetapan proksi membiarkan nama hos destinasi tidak berubah untuk pengesahan TLS; ia tidak memerlukan penggantian kelas SDK mahupun kilang SSL yang mempercayai segala-galanya.
Skop di sini ialah antara muka HTTP yang ditunjukkan. Beban kerja yang menggunakan WebSocket Realtime Database atau pengangkutan perkhidmatan lain perlu menyemak sokongan penghalaan pengangkutan itu secara berasingan.