Firebase Admin Java এবং টোকেন রিফ্রেশের জন্য একটি প্রক্সি ট্রান্সপোর্ট ব্যবহার করুন
ট্রান্সপোর্ট ফ্যাক্টরি GoogleCredentials-এ এবং ট্রান্সপোর্ট FirebaseOptions-এ দিন, যাতে দুটি HTTP পথই প্রক্সি পায়।
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 বা অন্য সার্ভিস ট্রান্সপোর্ট ব্যবহার করা ওয়ার্কলোডের সেই ট্রান্সপোর্টের রাউটিং সমর্থন আলাদাভাবে যাচাই করতে হবে।