जब Firebase की HTTP कॉल और क्रेडेंशियल रीफ़्रेश को एक ही प्रॉक्सी उपयोग करना हो, तो दोनों ट्रांसपोर्ट इनपुट कॉन्फ़िगर करें। 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 ट्रांसपोर्ट देता है; दूसरा Firebase ऐप का HTTP ट्रांसपोर्ट देता है। केवल एक सेट करने पर दूसरा अपने डिफ़ॉल्ट मार्ग पर रह सकता है।

serviceAccountStream ऐप का भरोसेमंद सेवा-खाता क्रेडेंशियल स्ट्रीम है। ऐप को उसके वर्कलोड के लिए रखें और सामान्य Firebase जीवनचक्र से रिलीज़ करें। प्रॉक्सी सेटिंग TLS सत्यापन के लिए गंतव्य होस्टनाम को अछूता रखती है; इसमें न SDK क्लास बदलने की ज़रूरत है और न हर चीज़ पर भरोसा करने वाली SSL फ़ैक्टरी की।

यहाँ दायरा दिखाए गए HTTP इंटरफ़ेस का है। Realtime Database WebSocket या किसी अन्य सेवा ट्रांसपोर्ट का उपयोग करने वाले वर्कलोड के लिए उस ट्रांसपोर्ट का रूटिंग समर्थन अलग से जाँचना होगा।

संबंधित लेख