Ρυθμίστε και τις δύο εισόδους transport όταν οι κλήσεις HTTP του Firebase και η ανανέωση διαπιστευτηρίων πρέπει να χρησιμοποιούν το ίδιο proxy. Ένα δημόσιο HTTP endpoint από τη λίστα proxy 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). Η πρώτη παρέχει το transport HTTP για τη λήψη token πρόσβασης· η δεύτερη παρέχει το transport HTTP της εφαρμογής Firebase. Αν οριστεί μόνο το ένα, το άλλο μπορεί να μείνει στην προεπιλεγμένη διαδρομή του.

Το serviceAccountStream είναι η αξιόπιστη ροή διαπιστευτηρίων λογαριασμού υπηρεσίας της εφαρμογής. Κρατήστε την εφαρμογή για το φόρτο εργασίας της και απελευθερώστε την μέσω του κανονικού κύκλου ζωής του Firebase. Η ρύθμιση proxy αφήνει άθικτο το όνομα κεντρικού υπολογιστή προορισμού για την επαλήθευση TLS· δεν απαιτεί ούτε αντικατάσταση κλάσεων SDK ούτε factory SSL που εμπιστεύεται τα πάντα.

Το πεδίο εδώ είναι οι διασυνδέσεις HTTP που φαίνονται. Ένας φόρτος εργασίας με WebSocket του Realtime Database ή άλλο transport υπηρεσίας χρειάζεται ξεχωριστό έλεγχο της υποστήριξης δρομολόγησης εκείνου του transport.

Σχετικά άρθρα