Firebase ၏ HTTP ခေါ်ဆိုမှုများနှင့် credential ပြန်လည်သစ်လွင်ခြင်းတို့သည် တူညီသော proxy ကို အသုံးပြုရမည့်အခါ transport input နှစ်ခုလုံးကို ပြင်ဆင်ပါ။ HTTP proxy စာရင်းမှ ရွေးချယ်ထားသော အများသုံး HTTP endpoint သည်လည်း တူညီသော လွှဲပြောင်းမှု နှစ်ခုကို လိုအပ်သည်။

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) ဖြစ်သည်။ ပထမတစ်ခုသည် access token ရယူရန် HTTP transport ကို ပေးသည်၊ ဒုတိယတစ်ခုသည် Firebase အက်ပ်၏ HTTP transport ကို ပေးသည်။ တစ်ခုတည်းသာ သတ်မှတ်ပါက အခြားတစ်ခုသည် ၎င်း၏ မူလလမ်းကြောင်းတွင် ကျန်နေနိုင်သည်။

serviceAccountStream သည် အက်ပ်၏ ယုံကြည်ရသော service account credential stream ဖြစ်သည်။ အက်ပ်ကို ၎င်း၏ အလုပ်အတွက် ထိန်းထားပြီး ပုံမှန် Firebase ဘဝစက်ဝန်းဖြင့် လွှတ်ပေးပါ။ proxy သတ်မှတ်ချက်သည် TLS စစ်ဆေးမှုအတွက် ဦးတည်ရာ hostname ကို မထိခိုက်စေဘဲ ထားရှိသည်၊ SDK class များ အစားထိုးရန်လည်း မလိုအပ်သလို အရာအားလုံးကို ယုံကြည်သော SSL factory ကိုလည်း မလိုအပ်ပါ။

ဤနေရာတွင် နယ်ပယ်မှာ ပြသထားသော HTTP interface များဖြစ်သည်။ Realtime Database WebSocket သို့မဟုတ် အခြား service transport ကို အသုံးပြုသော အလုပ်စည်းသည် ထို transport ၏ routing ပံ့ပိုးမှုကို သီးခြား စစ်ဆေးရန် လိုအပ်သည်။

ဆက်စပ်ဆောင်းပါးများ