একটি API কী একটি অনন্য স্ট্রিং যা Firebase এবং Google পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার সময় আপনার Firebase প্রকল্পে অনুরোধগুলিকে রুট করতে ব্যবহৃত হয়। এই পৃষ্ঠাটি API কী সম্পর্কে প্রাথমিক তথ্যের পাশাপাশি Firebase অ্যাপগুলির সাথে API কীগুলি ব্যবহার এবং পরিচালনা করার জন্য সর্বোত্তম অনুশীলনগুলি বর্ণনা করে৷
এপিআই কী এবং ফায়ারবেস সম্পর্কে সাধারণ তথ্য
ফায়ারবেসের জন্য API কীগুলি সাধারণ API কীগুলির থেকে আলাদা
সাধারণত API কীগুলি যেভাবে ব্যবহার করা হয় তার বিপরীতে, Firebase পরিষেবাগুলির জন্য API কীগুলি ব্যাকএন্ড সংস্থানগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয় না ; এটি শুধুমাত্র Firebase Security Rules (কোন শেষ ব্যবহারকারীরা সংস্থানগুলি অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে) এবং Firebase App Check (কোন অ্যাপগুলি সংস্থানগুলি অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে) দিয়ে করা যেতে পারে।
সাধারণত, আপনাকে এপিআই কীগুলিকে দৃঢ়ভাবে রক্ষা করতে হবে (উদাহরণস্বরূপ, একটি ভল্ট পরিষেবা ব্যবহার করে বা পরিবেশের ভেরিয়েবল হিসাবে কীগুলি সেট করে); যাইহোক, ফায়ারবেস পরিষেবাগুলির জন্য API কীগুলি কোড বা চেক-ইন কনফিগার ফাইলগুলিতে অন্তর্ভুক্ত করার জন্য ঠিক আছে।
যদিও Firebase পরিষেবাগুলির জন্য API কীগুলি কোডে অন্তর্ভুক্ত করা নিরাপদ, আপনার উচিত পর্যালোচনা করা এবং উপযুক্ত বিধিনিষেধ এবং সীমাগুলি প্রয়োগ করা ।
API কী তৈরি করা হচ্ছে
একটি ফায়ারবেস প্রকল্পে অনেকগুলি API কী থাকতে পারে, তবে প্রতিটি API কী শুধুমাত্র একটি একক Firebase প্রকল্পের সাথে যুক্ত হতে পারে।
Firebase স্বয়ংক্রিয়ভাবে আপনার প্রজেক্টের জন্য API কী তৈরি করে যখন আপনি নিম্নলিখিতগুলির মধ্যে যেকোনো একটি করেন:
- একটি ফায়ারবেস প্রকল্প তৈরি করুন >
Browser key
স্বয়ংক্রিয়ভাবে তৈরি - একটি Firebase Apple App তৈরি করুন >
iOS key
স্বয়ংক্রিয়ভাবে তৈরি - একটি Firebase Android অ্যাপ তৈরি করুন >
Android key
স্বয়ংক্রিয়ভাবে তৈরি
আপনি Google Cloud কনসোলে আপনার নিজস্ব API কী তৈরি করতে পারেন, উদাহরণস্বরূপ ডেভেলপমেন্ট বা ডিবাগিংয়ের জন্য । এই পৃষ্ঠায় পরে এটি কখন সুপারিশ করা হতে পারে সে সম্পর্কে আরও জানুন।
আপনার API কী খোঁজা হচ্ছে
আপনি Google Cloud কনসোলে API এবং পরিষেবা > শংসাপত্র প্যানেলে আপনার সমস্ত প্রকল্পের API কীগুলি দেখতে এবং পরিচালনা করতে পারেন৷
এছাড়াও আপনি নিম্নলিখিত স্থানে কোন API কী স্বয়ংক্রিয়ভাবে একটি Firebase অ্যাপের সাথে মিলছে তা খুঁজে পেতে পারেন। ডিফল্টরূপে, একই প্ল্যাটফর্মের (অ্যাপল বনাম অ্যান্ড্রয়েড বনাম ওয়েব) জন্য আপনার প্রকল্পের সমস্ত ফায়ারবেস অ্যাপ একই API কী ব্যবহার করবে।
Firebase Apple Apps — Firebase কনফিগারেশন ফাইল,
,GoogleService-Info.plist API_KEY
ক্ষেত্রে স্বয়ংক্রিয়ভাবে মিলে যাওয়া API কী খুঁজুন।ফায়ারবেস অ্যান্ড্রয়েড অ্যাপস — Firebase কনফিগারেশন ফাইল,
,google-services.json current_key
ক্ষেত্রে স্বয়ংক্রিয়ভাবে মিলে যাওয়া API কী খুঁজুন।ফায়ারবেস ওয়েব অ্যাপস —
apiKey
ক্ষেত্রের মধ্যে Firebase কনফিগার অবজেক্টে স্বয়ংক্রিয়-মিলিত API কী খুঁজুন।
একটি API কী ব্যবহার করে
Firebase/Google পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার সময় আপনার Firebase প্রোজেক্ট সনাক্ত করতে API কীগুলি ব্যবহার করা হয়। বিশেষত, এগুলি কোটা এবং বিলিং এর জন্য আপনার প্রকল্পের সাথে API অনুরোধগুলি সংযুক্ত করতে ব্যবহৃত হয়। তারা পাবলিক ডেটা অ্যাক্সেস করার জন্যও দরকারী।
উদাহরণস্বরূপ, আপনি একটি এপিআই কীকে একটি ক্যোয়ারী প্যারামিটার হিসাবে একটি REST API কলে এর মান পাস করে স্পষ্টভাবে ব্যবহার করতে পারেন। এই উদাহরণটি দেখায় কিভাবে আপনি Dynamic Links লিঙ্ক শর্টনার এপিআই- তে একটি অনুরোধ করতে পারেন:
POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
আপনার অ্যাপ যখন একটি Firebase API-তে কল করে যার জন্য মোবাইল/ওয়েব ক্লায়েন্ট দ্বারা সরবরাহ করা একটি API কী প্রয়োজন, তখন আপনার অ্যাপটি স্বয়ংক্রিয়ভাবে আপনার প্রকল্পের API কী-এর জন্য Firebase কনফিগারেশন ফাইল/অবজেক্টে দেখতে পাবে। যাইহোক, আপনি পরিবেশের ভেরিয়েবল সহ একটি ভিন্ন প্রক্রিয়া ব্যবহার করে আপনার অ্যাপের জন্য API কী প্রদান করতে পারেন।
পর্যালোচনা করুন এবং API কীগুলিতে উপযুক্ত সীমাবদ্ধতা প্রয়োগ করুন (প্রস্তাবিত)
যদিও ফায়ারবেস পরিষেবাগুলির জন্য একটি এপিআই কীকে গোপন হিসাবে বিবেচনা করার প্রয়োজন নেই, তবে আপনার এই বিভাগে বর্ণিত বিধিনিষেধ এবং সীমাগুলি পর্যালোচনা এবং প্রয়োগ করা উচিত।
আপনার Firebase API কীগুলির জন্য অনুমোদিত তালিকায় স্বয়ংক্রিয়ভাবে যোগ করা APIগুলি পর্যালোচনা করুন
যখন Firebase আপনার প্রোজেক্টে একটি API কী তৈরি করে, তখন আমরা স্বয়ংক্রিয়ভাবে সেই কীটিতে "API সীমাবদ্ধতা" যোগ করি। এই অনুমোদিত তালিকায় যোগ করা APIগুলি হল Firebase-সম্পর্কিত API যেগুলির জন্য ক্লায়েন্টকে কলের সাথে একটি API কী প্রদান করতে হবে। মনে রাখবেন যে ফায়ারবেস পরিষেবাগুলির ব্যবহারের জন্য প্রয়োজনীয় বেশিরভাগ APIগুলিকে আপনার API কীগুলির জন্য অনুমোদিত তালিকায় থাকতে হবে না।
যেহেতু Firebase সমস্ত Firebase পরিষেবার জন্য প্রয়োজনীয় API যোগ করে, তাই একটি API কী-এর অনুমোদন তালিকায় আপনি ব্যবহার করেন না এমন পণ্যগুলির API অন্তর্ভুক্ত থাকতে পারে। আপনি অনুমোদিত তালিকা থেকে APIগুলি সরাতে পারেন, তবে Firebase এবং আপনি যে Firebase পরিষেবাগুলি ব্যবহার করেন তার জন্য প্রয়োজনীয় APIগুলিকে সরিয়ে না দেওয়ার জন্য আপনাকে অবশ্যই খুব সতর্ক থাকতে হবে ( Firebase-সম্পর্কিত APIগুলির তালিকা দেখুন যা প্রতিটি পরিষেবার জন্য অনুমোদিত তালিকায় থাকা প্রয়োজন / পণ্য)। অন্যথায়, Firebase পরিষেবাগুলিতে কল করার সময় আপনি ত্রুটি পাবেন৷
আপনি পাসওয়ার্ড-ভিত্তিক Authentication ব্যবহার করলে কোটা শক্ত করুন
আপনি যদি পাসওয়ার্ড-ভিত্তিক Firebase Authentication ব্যবহার করেন এবং কেউ আপনার API কী ধরে রাখে, তবে তারা আপনার Firebase প্রকল্পের ডেটাবেস বা Cloud Storage ডেটা অ্যাক্সেস করতে পারবে না যতক্ষণ না এই ডেটা Firebase Security Rules দ্বারা সুরক্ষিত থাকে । তারা, যাইহোক, Firebase এর প্রমাণীকরণের শেষ পয়েন্টগুলি অ্যাক্সেস করতে এবং আপনার প্রকল্পের বিরুদ্ধে প্রমাণীকরণের অনুরোধ করতে আপনার API কী ব্যবহার করতে পারে।
এমন সম্ভাবনার বিরুদ্ধে প্রশমিত করতে যে কেউ একটি এপিআই কী অপব্যবহার করে পাশবিক শক্তি আক্রমণের চেষ্টা করতে পারে, আপনি আপনার অ্যাপের স্বাভাবিক ট্রাফিক প্রত্যাশা প্রতিফলিত করতে identitytoolkit.googleapis.com
এন্ডপয়েন্টের ডিফল্ট কোটা শক্ত করতে পারেন। সচেতন থাকুন যে আপনি যদি এই কোটা শক্ত করেন এবং আপনার অ্যাপ হঠাৎ করে ব্যবহারকারী বাড়ায়, আপনি কোটা না বাড়া পর্যন্ত সাইন-ইন ত্রুটি পেতে পারেন। আপনি Google Cloud কনসোলে আপনার প্রকল্পের API কোটা পরিবর্তন করতে পারেন।
যেকোন নন-ফায়ারবেস পরিষেবার জন্য আলাদা, সীমাবদ্ধ API কী ব্যবহার করুন
যদিও ফায়ারবেস পরিষেবাগুলির জন্য ব্যবহৃত API কীগুলিকে সাধারণত গোপন হিসাবে বিবেচনা করার প্রয়োজন হয় না, তবে আপনার API কীগুলির সাথে কিছু অতিরিক্ত সতর্কতা অবলম্বন করা উচিত যা আপনি অন্যান্য Google Cloud APIগুলির সাথে ব্যবহার করেন৷
আপনি যদি এমন একটি Google Cloud API (যেকোন প্ল্যাটফর্মে) ব্যবহার করেন যা ফায়ারবেস পরিষেবা / পণ্যের জন্য নয়, আমরা দৃঢ়ভাবে সেই APIগুলির সাথে ব্যবহারের জন্য পৃথক, সীমাবদ্ধ API কী তৈরি করার পরামর্শ দিই। এটি বিশেষভাবে গুরুত্বপূর্ণ যদি API একটি বিলযোগ্য Google Cloud পরিষেবার জন্য হয়।
উদাহরণস্বরূপ, আপনি যদি iOS-এ Firebase ML এবং ক্লাউড ভিশন API ব্যবহার করেন, তাহলে আপনাকে আলাদা API কী তৈরি করতে হবে যা আপনি শুধুমাত্র ক্লাউড ভিশন API অ্যাক্সেস করার জন্য ব্যবহার করেন।
নন-ফায়ারবেস API-এর জন্য আলাদা, সীমাবদ্ধ API কী ব্যবহার করে, আপনি প্রয়োজনে কীগুলি ঘোরাতে বা প্রতিস্থাপন করতে পারেন এবং আপনার Firebase পরিষেবাগুলির ব্যবহারে ব্যাঘাত না ঘটিয়ে API কীগুলিতে অতিরিক্ত সীমাবদ্ধতা যুক্ত করতে পারেন ।
এই নির্দেশাবলী বর্ণনা করে কিভাবে Super Service API
নামক একটি জাল API-এর জন্য একটি পৃথক, সীমাবদ্ধ API কী তৈরি করতে হয়।
ধাপ 1: Super Service API
এ অ্যাক্সেসের অনুমতি না দেওয়ার জন্য আপনার বিদ্যমান API কীগুলি কনফিগার করুন
Google Cloud কনসোলের শংসাপত্র পৃষ্ঠা খুলুন। অনুরোধ করা হলে, আপনার প্রকল্প নির্বাচন করুন.
তালিকায় বিদ্যমান প্রতিটি API কী-এর জন্য, সম্পাদনা দৃশ্য খুলুন।
এপিআই সীমাবদ্ধতা বিভাগে, সীমাবদ্ধ কী নির্বাচন করুন, তারপরে আপনি API কী-এর অ্যাক্সেস পেতে চান এমন সমস্ত API তালিকায় যোগ করুন। আপনি যে APIটির জন্য একটি পৃথক API কী তৈরি করছেন সেটিকে অন্তর্ভুক্ত না করার বিষয়টি নিশ্চিত করুন (এই উদাহরণে,
Super Service API
)।আপনি যখন একটি API কী এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই APIগুলি ঘোষণা করেন যেখানে কীটির অ্যাক্সেস রয়েছে৷ ডিফল্টরূপে, যখন API বিধিনিষেধ বিভাগে Don't restrict key নির্বাচন করা থাকে, তখন একটি API কী ব্যবহার করা যেতে পারে প্রজেক্টের জন্য সক্ষম করা যেকোনো API অ্যাক্সেস করতে।
এখন, আপনার বিদ্যমান API কীগুলি Super Service API
তে অ্যাক্সেস মঞ্জুর করবে না, তবে প্রতিটি কী আপনার API বিধিনিষেধ তালিকায় যোগ করা যেকোনো API-এর জন্য কাজ করতে থাকবে।
ধাপ 2: Super Service API
এ অ্যাক্সেসের জন্য একটি নতুন API কী তৈরি করুন এবং ব্যবহার করুন
শংসাপত্র পৃষ্ঠায় ফিরে যান। আপনার Firebase প্রকল্প এখনও নির্বাচিত হয়েছে তা নিশ্চিত করুন৷
শংসাপত্র তৈরি করুন > API কী ক্লিক করুন। নতুন API কী নোট নিন, তারপর Restrict key-এ ক্লিক করুন।
API বিধিনিষেধ বিভাগে, Restrict key নির্বাচন করুন, তারপর তালিকায় শুধুমাত্র
Super Service API
যোগ করুন।এই নতুন এপিআই কী শুধুমাত্র
Super Service API
অ্যাক্সেস দেয়।নতুন API কী ব্যবহার করতে আপনার অ্যাপ এবং পরিষেবাগুলি কনফিগার করুন৷
পরিবেশ-নির্দিষ্ট API কী ব্যবহার করুন (প্রস্তাবিত)
আপনি যদি বিভিন্ন পরিবেশের জন্য বিভিন্ন ফায়ারবেস প্রজেক্ট সেট আপ করেন, যেমন স্টেজিং এবং প্রোডাকশন, এটা গুরুত্বপূর্ণ যে প্রতিটি অ্যাপ ইনস্ট্যান্স তার সংশ্লিষ্ট ফায়ারবেস প্রোজেক্টের সাথে ইন্টারঅ্যাক্ট করে। উদাহরণস্বরূপ, আপনার স্টেজিং অ্যাপের উদাহরণ আপনার উত্পাদন ফায়ারবেস প্রকল্পের সাথে কথা বলা উচিত নয়। এর মানে হল যে আপনার স্টেজিং অ্যাপকে আপনার স্টেজিং ফায়ারবেস প্রোজেক্টের সাথে যুক্ত API কী ব্যবহার করতে হবে।
কোড পরিবর্তনগুলিকে উন্নয়ন থেকে স্টেজিং থেকে প্রোডাকশনে উন্নীত করার সমস্যাগুলি কমাতে, কোডে API কীগুলি অন্তর্ভুক্ত করার পরিবর্তে, হয় সেগুলিকে পরিবেশের ভেরিয়েবল হিসাবে সেট করুন বা একটি কনফিগারেশন ফাইলে অন্তর্ভুক্ত করুন৷
মনে রাখবেন যে আপনি যদি Firebase ML সাথে ডেভেলপমেন্টের জন্য Firebase Local Emulator Suite ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি ডিবাগ-অনলি API কী তৈরি করতে হবে এবং ব্যবহার করতে হবে। এই ধরনের কী তৈরি করার নির্দেশাবলী Firebase ML ডক্সে পাওয়া যায়।
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী এবং সমস্যা সমাধান
FAQs
হ্যাঁ, ডিফল্টরূপে, Firebase-সম্পর্কিত API-এর সাথে ব্যবহারের জন্য Firebase-এর অটো-প্রভিশনগুলির সমস্ত API কী "API বিধিনিষেধ" স্বয়ংক্রিয়ভাবে প্রয়োগ হয়৷ এই অনুমোদিত তালিকায় থাকা Firebase-সম্পর্কিত APIগুলির তালিকা দেখুন।
এই অনুমোদিত তালিকায় যোগ করা APIগুলি হল সেই APIগুলি যা Firebase পরিষেবাগুলি দ্বারা ক্লায়েন্ট-কোড থেকে ডাকা হয় এবং আপনার Firebase প্রকল্প বা অ্যাপ সনাক্তকরণের জন্য API কীগুলির প্রয়োজন হয়৷ মনে রাখবেন যে ফায়ারবেস পরিষেবাগুলির ব্যবহারের জন্য প্রয়োজনীয় বেশিরভাগ APIগুলিকে আপনার API কীগুলির জন্য অনুমোদিত তালিকায় থাকতে হবে না।
যেহেতু Firebase সমস্ত Firebase পরিষেবার জন্য প্রয়োজনীয় API যোগ করে, তাই একটি API কী-এর অনুমোদন তালিকায় আপনি ব্যবহার করেন না এমন পণ্যগুলির API অন্তর্ভুক্ত থাকতে পারে। আপনি অনুমোদিত তালিকা থেকে APIগুলি সরাতে পারেন, তবে Firebase এবং আপনি যে Firebase পরিষেবাগুলি ব্যবহার করেন তার জন্য প্রয়োজনীয় APIগুলিকে সরিয়ে না দেওয়ার জন্য আপনাকে অবশ্যই খুব সতর্ক থাকতে হবে ( Firebase-সম্পর্কিত APIগুলির তালিকা দেখুন যা প্রতিটি পরিষেবার জন্য অনুমোদিত তালিকায় থাকা প্রয়োজন / পণ্য)। অন্যথায়, Firebase পরিষেবাগুলিতে কল করার সময় আপনি ত্রুটি পাবেন৷
আপনি Google Cloud কনসোলে API এবং পরিষেবা > শংসাপত্র প্যানেলে আপনার সমস্ত API কী এবং তাদের "API সীমাবদ্ধতা" দেখতে পারেন।
Firebase কিভাবে এই "API বিধিনিষেধগুলি" প্রয়োগ করে সে সম্পর্কে নিম্নলিখিতগুলি নোট করুন:
2024 সালের মে থেকে, Firebase-এর দ্বারা স্বয়ংক্রিয়ভাবে প্রবিধান করা সমস্ত নতুন API কীগুলি Firebase-সম্পর্কিত APIগুলির তালিকায় স্বয়ংক্রিয়ভাবে সীমাবদ্ধ।
মে 2024-এর মধ্যে, সমস্ত বিদ্যমান এবং অনিয়ন্ত্রিত API কীগুলি যেগুলি Firebase পূর্বে স্বয়ংক্রিয়-বিধান করেছিল সেগুলি Firebase-সম্পর্কিত API এবং প্রজেক্টের বর্তমানে সক্রিয় APIগুলির তালিকার মধ্যে সীমাবদ্ধ।
Firebase পূর্বে স্বয়ংক্রিয়ভাবে প্রভিশন করা ছিল এমন কোনো বিদ্যমান এবং ইতিমধ্যে সীমাবদ্ধ API কী পরিবর্তন করা হয়নি।
Firebase দ্বারা স্বয়ংক্রিয়ভাবে প্রবিধান করা হয়নি এমন কোনো বিদ্যমান API কী পরিবর্তন করা হয়নি।
কোন API কী আপনার ফায়ারবেস অ্যাপের সাথে যুক্ত তা নির্ধারণ করতে আপনি নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনো একটি ব্যবহার করতে পারেন:
Firebase কনসোল
প্রজেক্ট সেটিংসে যান এবং তারপর আপনার অ্যাপস কার্ডে নিচে স্ক্রোল করুন।
আগ্রহের অ্যাপটি নির্বাচন করুন।
আগ্রহের অ্যাপের জন্য Firebase কনফিগারেশন ফাইল/অবজেক্টটি পান এবং তারপরে এর API কী খুঁজুন:
Apple :
GoogleService-Info.plist
ডাউনলোড করুন এবং তারপরAPI_KEY
ক্ষেত্রটি খুঁজুনAndroid :
google-services.json
ডাউনলোড করুন, আগ্রহের অ্যাপের জন্য কনফিগার খুঁজুন (এর প্যাকেজের নাম দেখুন), এবং তারপরcurrent_key
ক্ষেত্রটি খুঁজুনওয়েব : কনফিগ বিকল্পটি নির্বাচন করুন এবং তারপরে
apiKey
ক্ষেত্রটি খুঁজুন
Firebase CLI
নিম্নলিখিত কমান্ডটি চালিয়ে আগ্রহের অ্যাপের জন্য Firebase কনফিগারেশন ফাইল/অবজেক্ট পান:
firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
- PLATFORM (একটি):
IOS
|ANDROID
|WEB
- FIREBASE_APP_ID : আপনার Firebase অ্যাপের জন্য Firebase-অর্পিত অনন্য শনাক্তকারী ( আপনার অ্যাপ আইডি খুঁজুন )
- PLATFORM (একটি):
অ্যাপের মুদ্রিত ফায়ারবেস কনফিগারেশনে, এর API কী খুঁজুন:
Apple :
API_KEY
ক্ষেত্র খুঁজুনঅ্যান্ড্রয়েড : আগ্রহের অ্যাপের জন্য কনফিগার খুঁজুন (এর প্যাকেজের নাম খুঁজুন), এবং তারপর
current_key
ক্ষেত্রটি খুঁজুনওয়েব :
apiKey
ক্ষেত্র খুঁজুন
REST API
আগ্রহের অ্যাপের জন্য প্রযোজ্য এন্ডপয়েন্টে কল করে এবং তারপরে পরবর্তী ধাপে
apiKeyId
মান পাস করে API কী-এরapiKeyId
(UID) পান।- অ্যাপল :
projects.iosApps.get
কল করুন - Android :
projects.androidApps.get
কল করুন - ওয়েব :
projects.webApps.get
কল করুন
- অ্যাপল :
projects.locations.keys.getKeyString
কল করে API কী স্ট্রিং পান।এই
keyString
একই মান যা অ্যাপের কনফিগারেশন আর্টিফ্যাক্টে পাওয়া যায় ( Apple | Android | Web )।
ফায়ারবেস অ্যাপল অ্যাপস - প্রতিটি অ্যাপের নিজস্ব কনফিগারেশন ফাইল রয়েছে এবং শুধুমাত্র একটি এপিআই কী তালিকাভুক্ত থাকতে পারে।
ফায়ারবেস অ্যান্ড্রয়েড অ্যাপস — ফায়ারবেস প্রোজেক্টের সমস্ত অ্যান্ড্রয়েড অ্যাপ একই কনফিগারেশন ফাইলে তালিকাভুক্ত করা হয়েছে এবং প্রতিটি অ্যাপে শুধুমাত্র একটি এপিআই কী তালিকাভুক্ত থাকতে পারে। যদিও এই কনফিগারেশন ফাইলের প্রতিটি অ্যাপে একটি ভিন্ন কী তালিকাভুক্ত থাকতে পারে।
ফায়ারবেস ওয়েব অ্যাপস - প্রতিটি অ্যাপের নিজস্ব কনফিগারেশন অবজেক্ট আছে এবং শুধুমাত্র একটি এপিআই কী তালিকাভুক্ত থাকতে পারে।
যদিও আপনি একটি অ্যাপের সাথে একাধিক API কী ব্যবহার করতে পারেন । এই অন্যান্য API কীগুলি অ্যাক্সেস করার জন্য আপনাকে অবশ্যই আপনার অ্যাপের জন্য একটি প্রক্রিয়া প্রদান করতে হবে, যেমন একটি পরিবেশ পরিবর্তনশীলের মাধ্যমে। অন্যান্য API কীগুলি অ্যাক্সেস করার পদ্ধতিটি আপনার Firebase কনফিগার ফাইল/অবজেক্টে তালিকাভুক্ত API কীগুলির উপর নির্ভর করতে পারে না।
আপনি যখন প্রথমবার আপনার অ্যাপের Firebase কনফিগারেশন ফাইল/অবজেক্ট পান , তখন Firebase পরীক্ষা করে যে আপনার প্রোজেক্টে "অ্যাপ্লিকেশন সীমাবদ্ধতা" আছে যা অ্যাপের সাথে মেলে (উদাহরণস্বরূপ, অ্যাপল অ্যাপের জন্য একটি ম্যাচিং বান্ডেল আইডি) আছে কিনা।
যদি ফায়ারবেস মেলে এমন কোনো সীমাবদ্ধ কী খুঁজে না পায়, তাহলে এটি কনফিগার ফাইলে তালিকাভুক্ত করবে/অবজেক্ট করবে Apple অ্যাপের জন্য iOS key
, অ্যান্ড্রয়েড অ্যাপের জন্য Android key
এবং ওয়েব অ্যাপের জন্য Browser key
(ধরে নিচ্ছে যে এই কীগুলি বিদ্যমান এবং কোন "অ্যাপ্লিকেশন সীমাবদ্ধতা" নেই যা তাদের সেই অ্যাপের সাথে মেলে না)।
হ্যাঁ, আপনি আপনার কনফিগার ফাইল/অবজেক্ট থেকে ম্যানুয়ালি আপনার API কী মুছে ফেলতে পারেন। যাইহোক, আপনাকে অবশ্যই একটি API কী অ্যাক্সেস করার জন্য আপনার অ্যাপের জন্য অন্য কিছু ব্যবস্থা প্রদান করতে হবে (যেমন একটি পরিবেশ পরিবর্তনশীলের মাধ্যমে)। অন্যথায়, ফায়ারবেস পরিষেবাগুলিতে যেকোনো কল ব্যর্থ হবে৷
হ্যাঁ, আপনি একটি অ্যাপের সাথে একটি ভিন্ন API কী সংযুক্ত করতে একটি কনফিগার ফাইল/অবজেক্ট ম্যানুয়ালি সম্পাদনা করতে পারেন।
মনে রাখবেন যে আপনি যদি কনসোল থেকে আপনার অ্যাপের কনফিগারেশন ফাইল/অবজেক্ট পুনরায় প্রাপ্ত করেন তবে এটি সর্বদা সেই API কীগুলি তালিকাভুক্ত করবে যা Firebase স্বয়ংক্রিয়ভাবে সেই অ্যাপের সাথে মেলে । সুতরাং, প্রয়োজন অনুসারে আপনাকে আপনার ম্যানুয়াল সম্পাদনাগুলি পুনরাবৃত্তি করতে হবে।
না, একটি API কী শুধুমাত্র একটি নির্দিষ্ট প্রকল্প সনাক্ত করে এবং অন্য প্রকল্পে স্থানান্তরিত করা যাবে না।
আপনি যদি একটি API কী মুছে ফেলেন যা একটি অ্যাপের দ্বারা ব্যবহৃত হয়, তাহলে সেই অ্যাপ থেকে API কলগুলি ব্যর্থ হবে৷ আপনি রিপোর্ট, ইমেল বা ত্রুটি পেতে পারেন যে আপনি একটি API কী ব্যবহার করার চেষ্টা করছেন যা অবৈধ।
একটি API কী মুছে ফেলা স্থায়ী এবং পূর্বাবস্থায় ফেরানো যাবে না৷
একটি ফায়ারবেস এপিআই কী-এর জন্য, শুধুমাত্র এপিআইগুলি যেগুলি কী-এর "API সীমাবদ্ধতা" মঞ্জুরি তালিকায় থাকা প্রয়োজন সেগুলি হল সেই APIগুলি যেগুলির জন্য ক্লায়েন্টকে কলের সাথে একটি API কী প্রদান করতে হবে৷ মনে রাখবেন যে খুব কম ফায়ারবেস-সম্পর্কিত API-এর এই প্রয়োজনীয়তা রয়েছে। আপনার প্রোজেক্টে সক্রিয় করা বেশিরভাগ ফায়ারবেস-সম্পর্কিত API-কে কী-এর "API সীমাবদ্ধতা" মঞ্জুরি তালিকায় থাকতে হবে না।
ফায়ারবেস এপিআই কী-এর জন্য "API সীমাবদ্ধতা" মঞ্জুরি তালিকায় কোন Firebase-সম্পর্কিত APIগুলিকে অন্তর্ভুক্ত করতে হবে তা নির্ধারণ করতে নিম্নলিখিত সারণীটি ব্যবহার করুন৷ মনে রাখবেন, Firebase API কী শুধুমাত্র Firebase পরিষেবার জন্য ব্যবহার করা উচিত। নির্দিষ্ট ধরনের API-এর জন্য আলাদা, সীমাবদ্ধ API কী তৈরি করার বিষয়ে আরও জানুন।
আপনি Google Cloud কনসোলে API এবং পরিষেবা > শংসাপত্র প্যানেলে আপনার প্রকল্পের API কীগুলি দেখতে এবং পরিচালনা করতে পারেন৷
API নাম (পরিষেবার নাম) | API প্রদর্শনের নাম | সংশ্লিষ্ট ফায়ারবেস পরিষেবা / পণ্য |
---|---|---|
firebase.googleapis.com | ফায়ারবেস ম্যানেজমেন্ট এপিআই | সমস্ত পণ্য |
logging.googleapis.com | ক্লাউড লগিং API | সমস্ত পণ্য |
firebaseinstallations.googleapis.com | ফায়ারবেস ইনস্টলেশন API | Cloud Messaging , Crashlytics , In-App Messaging , Performance Monitoring , Remote Config , Firebase ML |
firebaseappcheck.googleapis.com | ফায়ারবেস অ্যাপ চেক API | App Check |
firebaseappdistribution.googleapis.com | ফায়ারবেস অ্যাপ ডিস্ট্রিবিউশন API | App Distribution |
firebaseapptesters.googleapis.com | ফায়ারবেস অ্যাপ টেস্টার এপিআই | App Distribution |
identitytoolkit.googleapis.com | আইডেন্টিটি টুলকিট API | Authentication |
সিকিউরেটোকেন.গোগলিপিস.কম | টোকেন পরিষেবা API | Authentication |
firebaserules.googleapis.com * | ফায়ারবেস নিয়ম API | Cloud Firestore , Cloud Storage , Realtime Database |
datastore.googleapis.com | ক্লাউড ডেটাস্টোর API | Cloud Firestore |
firestore.googleapis.com | গুগল ক্লাউড ফায়ারস্টোর এপিআই | Cloud Firestore |
fcmregistrations.googleapis.com | FCM রেজিস্ট্রেশন API | Cloud Messaging |
firebasestorage.googleapis.com | Firebase API-এর জন্য ক্লাউড স্টোরেজ | Cloud Storage |
firebasedynamiclinks.googleapis.com | ফায়ারবেস ডায়নামিক লিঙ্ক এপিআই | Dynamic Links |
firebasehosting.googleapis.com * | ফায়ারবেস হোস্টিং API | Hosting |
firebaseinappmessaging.googleapis.com | ফায়ারবেস ইন-অ্যাপ মেসেজিং API | In-App Messaging |
firebaseml.googleapis.com | Firebase ML API | Firebase ML |
mlkit.googleapis.com ** | ML কিট API | Firebase ML |
mobilecrashreporting.googleapis.com | মোবাইল ক্র্যাশ রিপোর্টিং API | Performance Monitoring |
play.googleapis.com | গুগল প্লে অ্যান্ড্রয়েড ডেভেলপার এপিআই | Performance Monitoring |
firebaseremoteconfig.googleapis.com | ফায়ারবেস রিমোট কনফিগ API | Performance Monitoring , Remote Config |
firebaseremoteconfigrealtime.googleapis.com | ফায়ারবেস রিমোট কনফিগ রিয়েলটাইম API | Performance Monitoring , Remote Config |
cloudconfig.googleapis.com ** | N/A | Remote Config |
firebasedatabase.googleapis.com * | ফায়ারবেস রিয়েলটাইম ডেটাবেস API | Realtime Database |
firebasevertexai.googleapis.com | Firebase API-তে Vertex AI | Vertex AI in Firebase |
* শুধুমাত্র যদি আপনি ফায়ারবেস এপিআই কী ব্যবহার করেন তৃতীয় পক্ষের টুলের সাথে অথবা Firebase পরিষেবা/পণ্যে সরাসরি REST অ্যাক্সেস ব্যবহার করেন।
** পণ্যের SDK এর পূর্ববর্তী সংস্করণগুলির জন্য প্রয়োজনীয়৷ আপনি যদি SDK-এর লেটেস্ট ভার্সন ব্যবহার করেন, তাহলে API-কে কী-এর অনুমতি তালিকায় থাকার প্রয়োজন নেই।
সমস্যা সমাধান
আপনি যদি একটি API_KEY_SERVICE_BLOCKED
ত্রুটি বা নিম্নলিখিতগুলির মতো একটি ত্রুটি পেয়ে থাকেন তবে এই FAQ-এর নির্দেশিকা অনুসরণ করুন:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
API কল করার জন্য আপনার অ্যাপের দ্বারা ব্যবহৃত API কী সম্ভবত এটিতে "API বিধিনিষেধ" প্রয়োগ করা হয়েছে এবং কীটির অনুমোদিত তালিকায় সেই API অন্তর্ভুক্ত নেই।
আপনি যদি ফায়ারবেস-সম্পর্কিত পরিষেবা/পণ্য ব্যবহার করার চেষ্টা করার সময় এই ত্রুটিটি পেয়ে থাকেন, তাহলে নিশ্চিত করুন যে আপনি যে API কীটি ব্যবহার করছেন তাতে কীটির "API সীমাবদ্ধতা" অনুমোদিত তালিকায় অন্তর্ভুক্ত সমস্ত প্রয়োজনীয় API রয়েছে।
যদি আপনি একটি নন-Firebase পরিষেবা ব্যবহার করার চেষ্টা করার সময় এই ত্রুটিটি পেয়ে থাকেন, তাহলে আমরা দৃঢ়ভাবে সেই পরিষেবা এবং API-এর জন্য একটি নতুন API কী তৈরি করার পরামর্শ দিই৷ Firebase API কী শুধুমাত্র Firebase পরিষেবা/পণ্যের জন্য ব্যবহার করা উচিত। নির্দিষ্ট ধরনের API-এর জন্য আলাদা, সীমাবদ্ধ API কী তৈরি করার বিষয়ে আরও জানুন।
আপনার ওয়েব অ্যাপ দ্বারা ব্যবহৃত API কী সম্ভবত এটিতে "API বিধিনিষেধ" প্রয়োগ করেছে৷ যদি এটি হয় তবে নিশ্চিত করুন যে Firebase Management API অনুমোদিত API-এর তালিকায় রয়েছে।
এখানে অবৈধ API কীগুলির জন্য কয়েকটি সাধারণ কারণ রয়েছে:
এপিআই কীটিতে "এপিআই কী সীমাবদ্ধতা" প্রয়োগ করা হয়েছে যা এটিকে কী ("অ্যাপ্লিকেশন বিধিনিষেধ") ব্যবহার করার চেষ্টা করে বা API ("এপিআই বিধিনিষেধ") নামে ডাকার জন্য অব্যবহারযোগ্য করে তোলে।
Google Cloud কনসোলে প্রজেক্ট থেকে API কী মুছে ফেলা হয়েছে।
অ্যাপের Firebase কনফিগারেশন ফাইল/অবজেক্টে তালিকাভুক্ত প্রোজেক্ট আইডির জন্য API কী তৈরি করা হয়নি।
এই সমস্যাটি সমাধান করার একটি উপায় হল আপনার অ্যাপের Firebase কনফিগারেশন ফাইল/অবজেক্টের আপডেট করা সংস্করণ প্রাপ্ত করা , তারপরে আপনার পুরানো কনফিগার ফাইল/অবজেক্টকে নতুন আপডেট করা ফাইল/অবজেক্ট দিয়ে প্রতিস্থাপন করুন । কনসোলে একটি কনফিগার অবজেক্ট ডাউনলোড বা প্রদর্শনের জন্য একটি কনফিগার ফাইল পাঠানোর আগে, Firebase চেক করে যে তালিকাভুক্ত API কী(গুলি) অ্যাপ(গুলি) এর সাথে মেলে ৷