Dùng một proxy transport cho Firebase Admin Java và làm mới token
Truyền transport factory cho GoogleCredentials và transport cho FirebaseOptions để cả hai đường HTTP đều nhận proxy.
Hãy cấu hình cả hai đầu vào transport khi các lệnh gọi HTTP của Firebase và việc làm mới thông tin xác thực phải dùng cùng một proxy. Một điểm cuối HTTP công khai chọn từ danh sách proxy HTTP cũng cần đúng cặp bàn giao này:
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);Hai bàn giao quan trọng là fromStream(serviceAccountStream, () -> transport) và setHttpTransport(transport). Cái thứ nhất cung cấp transport HTTP để lấy token truy cập; cái thứ hai cung cấp transport HTTP của ứng dụng Firebase. Chỉ đặt một cái có thể khiến cái còn lại ở tuyến mặc định.
serviceAccountStream là luồng thông tin xác thực tài khoản dịch vụ đáng tin cậy của ứng dụng. Giữ ứng dụng cho khối lượng công việc của nó và giải phóng nó theo vòng đời Firebase thông thường. Thiết lập proxy giữ nguyên tên máy chủ đích cho việc xác minh TLS; nó không cần thay thế lớp SDK hay factory SSL tin cậy mọi thứ.
Phạm vi ở đây là các giao diện HTTP được trình bày. Khối lượng công việc dùng Realtime Database WebSocket hoặc transport dịch vụ khác cần kiểm tra riêng khả năng định tuyến của transport đó.