এপিআই কী হলো একটি অনন্য স্ট্রিং, যা ফায়ারবেস এবং গুগল পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার সময় আপনার ফায়ারবেস প্রোজেক্টে রিকোয়েস্ট রাউট করতে ব্যবহৃত হয়। এই পৃষ্ঠায় এপিআই কী সম্পর্কে প্রাথমিক তথ্যের পাশাপাশি ফায়ারবেস অ্যাপের সাথে এপিআই কী ব্যবহার ও পরিচালনার সেরা পদ্ধতিগুলো বর্ণনা করা হয়েছে।
আপনি যদি Google Cloud থেকে "আপনার Google Cloud প্রজেক্টের জন্য একটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য গুগল এপিআই কী" সম্পর্কে কোনো ইমেল পেয়ে থাকেন এবং ইমেলে তালিকাভুক্ত এপিআই কী-টি আপনার ফায়ারবেস এপিআই কী হয় , তাহলে আপনার কোড বা কনফিগারেশন ফাইলে নিরাপদে অন্তর্ভুক্ত করার জন্য এপিআই কী-টি নিম্নলিখিত শর্তগুলো পূরণ করছে কিনা তা নিশ্চিত করুন। আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে নিম্নলিখিত বিষয়গুলো যাচাই করতে পারেন।
- এটি হলো সেই এপিআই কী যা আপনি আপনার ফায়ারবেস অ্যাপের জন্য এবং শুধুমাত্র ফায়ারবেস পরিষেবাগুলোর জন্য ব্যবহার করেন। এই কীগুলোকে সাধারণত
Browser key (auto created by Firebase),Android key (auto created by Firebase)বাiOS key (auto created by Firebase)বলা হয়। - কী-টির 'API restrictions' allowlist-এ Firebase-সম্পর্কিত সমস্ত প্রয়োজনীয় API অন্তর্ভুক্ত রয়েছে।
- এর 'এপিআই সীমাবদ্ধতা' অনুমোদিত তালিকায় অন্য কোনো এপিআই নেই । বিশেষ করে, এই তালিকায়
Generative Language APIথাকা উচিত নয় ।
এছাড়াও, নিশ্চিত করুন যে আপনি আপনার ব্যবহৃত Firebase প্রোডাক্টগুলোর জন্য সুপারিশ অনুযায়ী Firebase Security Rules এবং App Check ব্যবহার করছেন।
আপনি Firebase-এর জন্য API কী সম্পর্কে বিস্তারিত জানতে এবং প্রায়শই জিজ্ঞাসিত প্রশ্নগুলির একটি তালিকা পেতে পারেন "Firebase-এর জন্য API কী ব্যবহার এবং পরিচালনা সম্পর্কে জানুন" অংশে।
এই পৃষ্ঠার বাকি অংশে ফায়ারবেসের এপিআই কী (API key) সম্পর্কে বিস্তারিত তথ্য এবং এই কীগুলো সম্পর্কিত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলীর (FAQ) একটি তালিকা দেওয়া হয়েছে।
এপিআই কী এবং ফায়ারবেস সম্পর্কে সাধারণ তথ্য
ফায়ারবেসের এপিআই কীগুলো সাধারণ এপিআই কী থেকে ভিন্ন।
সাধারণত এপিআই কী যেভাবে ব্যবহার করা হয়, তার থেকে ভিন্নভাবে, ফায়ারবেস সার্ভিসের জন্য এপিআই কী ব্যাকএন্ড রিসোর্সে অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয় না ; এটি শুধুমাত্র Firebase Security Rules (কোন এন্ড ইউজার রিসোর্স অ্যাক্সেস করতে পারবে তা নিয়ন্ত্রণ করতে) এবং Firebase App Check (কোন অ্যাপ রিসোর্স অ্যাক্সেস করতে পারবে তা নিয়ন্ত্রণ করতে) এর মাধ্যমে করা যায়।
সাধারণত, এপিআই কীগুলো অত্যন্ত সতর্কতার সাথে সুরক্ষিত রাখতে হয় (উদাহরণস্বরূপ, ভল্ট সার্ভিস ব্যবহার করে অথবা কীগুলোকে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করে); তবে, ফায়ারবেস সার্ভিসের এপিআই কীগুলো কোডে বা চেক-ইন করা কনফিগারেশন ফাইলে অন্তর্ভুক্ত করা যায়।
যদিও ফায়ারবেস পরিষেবাগুলির এপিআই কীগুলি কোডে অন্তর্ভুক্ত করা নিরাপদ, তবুও আপনার সেগুলি পর্যালোচনা করে উপযুক্ত বিধিনিষেধ এবং সীমা প্রয়োগ করা উচিত।
এপিআই কী তৈরি করা
একটি Firebase প্রজেক্টে একাধিক API কী থাকতে পারে, কিন্তু প্রতিটি API কী শুধুমাত্র একটি Firebase প্রজেক্টের সাথেই যুক্ত করা যায়।

আপনি নিম্নলিখিত কাজগুলোর যেকোনো একটি করলে Firebase আপনার প্রোজেক্টের জন্য স্বয়ংক্রিয়ভাবে API কী তৈরি করে:
- একটি Firebase প্রজেক্ট তৈরি করুন >
Browser keyস্বয়ংক্রিয়ভাবে তৈরি হয়েছে - একটি Firebase Apple অ্যাপ তৈরি করুন >
iOS keyস্বয়ংক্রিয়ভাবে তৈরি হয়েছে - একটি Firebase অ্যান্ড্রয়েড অ্যাপ তৈরি করুন >
Android keyস্বয়ংক্রিয়ভাবে তৈরি হয়েছে
আপনি Google Cloud কনসোলে আপনার নিজস্ব এপিআই কী-ও তৈরি করতে পারেন, উদাহরণস্বরূপ ডেভেলপমেন্ট বা ডিবাগিংয়ের জন্য । কখন এটি করার পরামর্শ দেওয়া হতে পারে, সে সম্পর্কে এই পৃষ্ঠার পরবর্তী অংশে আরও জানুন।
আপনার এপিআই কীগুলি খুঁজে বের করা
আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে আপনার প্রোজেক্টের সমস্ত API কী দেখতে ও পরিচালনা করতে পারবেন।
কোন এপিআই কী একটি ফায়ারবেস অ্যাপের সাথে স্বয়ংক্রিয়ভাবে মিলে যায়, তা আপনি নিম্নলিখিত স্থানগুলিতেও খুঁজে পেতে পারেন। ডিফল্টরূপে, আপনার প্রোজেক্টের একই প্ল্যাটফর্মের (অ্যাপল বনাম অ্যান্ড্রয়েড বনাম ওয়েব) সমস্ত ফায়ারবেস অ্যাপ একই এপিআই কী ব্যবহার করবে।
ফায়ারবেস অ্যাপল অ্যাপস — ফায়ারবেস কনফিগারেশন ফাইল
এরGoogleService-Info.plist API_KEYফিল্ডে স্বয়ংক্রিয়ভাবে মিলে যাওয়া API কী-টি খুঁজুন।ফায়ারবেস অ্যান্ড্রয়েড অ্যাপস — ফায়ারবেস কনফিগারেশন ফাইল
এরgoogle-services.json current_keyফিল্ডে স্বয়ংক্রিয়ভাবে মিলে যাওয়া API কী-টি খুঁজুন।ফায়ারবেস ওয়েব অ্যাপস — ফায়ারবেস কনফিগ অবজেক্টের
apiKeyফিল্ডে স্বয়ংক্রিয়ভাবে মিলে যাওয়া API কী-টি খুঁজুন।
একটি এপিআই কী ব্যবহার করে
ফায়ারবেস বা গুগল পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার সময় আপনার ফায়ারবেস প্রজেক্টকে শনাক্ত করতে ফায়ারবেসের এপিআই কী ব্যবহার করা হয়। বিশেষত, কোটা এবং বিলিংয়ের জন্য এপিআই অনুরোধগুলিকে আপনার প্রজেক্টের সাথে যুক্ত করতে এগুলি ব্যবহৃত হয়। পাবলিক ডেটা অ্যাক্সেস করার জন্যও এগুলি কার্যকর।
বেশিরভাগ ডেভেলপার এবং ব্যবহারের ক্ষেত্রে, আপনি এই এপিআই কীগুলো সরাসরি ব্যবহার করেন না। এর পরিবর্তে, যখন আপনার অ্যাপ এমন কোনো ফায়ারবেস এপিআই-কে কল করে যার জন্য মোবাইল বা ওয়েব ক্লায়েন্ট দ্বারা প্রদত্ত একটি এপিআই কী প্রয়োজন, তখন আপনার অ্যাপটি স্বয়ংক্রিয়ভাবে তার ফায়ারবেস কনফিগারেশনে একটি এপিআই কী খুঁজে নেয়। এই কনফিগারেশনটি আপনার অ্যাপের কোডবেসে যুক্ত করা হয়েছিল যখন আপনি আপনার অ্যাপটিকে ফায়ারবেসের সাথে সংযুক্ত করেছিলেন।
মনে রাখবেন যে, আপনি আপনার অ্যাপের API কী ভিন্ন কোনো পদ্ধতি ব্যবহার করেও প্রদান করতে পারেন, যেমন Firebase অপশন অথবা এনভায়রনমেন্ট ভ্যারিয়েবল ব্যবহার করে।
এছাড়াও, Firebase পরিষেবাগুলির কয়েকটি REST API-এর ক্ষেত্রে, আপনাকে কোয়েরি প্যারামিটার হিসেবে API কী-এর মানটি কলে স্পষ্টভাবে পাস করতে হতে পারে। এই উদাহরণটি দেখায় যে আপনি কীভাবে Firebase Authentication API ব্যবহার করে একটি অনুরোধ করতে পারেন:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY
এপিআই কী-গুলোর উপর যথাযথ বিধিনিষেধ পর্যালোচনা ও প্রয়োগ করুন (প্রস্তাবিত)।
যদিও ফায়ারবেস পরিষেবাগুলির জন্য এপিআই কী-কে গোপনীয় হিসাবে বিবেচনা করা আবশ্যক নয়, তবুও এই বিভাগে বর্ণিত বিধিনিষেধ এবং সীমাগুলি পর্যালোচনা করে প্রয়োগ করা উচিত।
আপনার Firebase API কীগুলির জন্য অনুমোদিত তালিকায় স্বয়ংক্রিয়ভাবে যুক্ত হওয়া APIগুলি পর্যালোচনা করুন।
যখন Firebase আপনার প্রোজেক্টে একটি API কী তৈরি করে, তখন আমরা স্বয়ংক্রিয়ভাবে সেই কী-তে "API বিধিনিষেধ" যোগ করে দিই। এই অনুমোদিত তালিকায় (allowlist) যুক্ত করা API-গুলো হলো Firebase-সম্পর্কিত API, যেগুলোর জন্য ক্লায়েন্টকে কল করার সময় একটি API কী প্রদান করতে হয়। উল্লেখ্য যে, Firebase পরিষেবাগুলো ব্যবহারের জন্য প্রয়োজনীয় বেশিরভাগ API-এর ক্ষেত্রে আপনার API কী-এর অনুমোদিত তালিকায় থাকার কোনো প্রয়োজন নেই।
যেহেতু Firebase সমস্ত Firebase পরিষেবার জন্য প্রয়োজনীয় API যোগ করে, তাই একটি API কী-এর অনুমোদিত তালিকায় এমন পণ্যের API অন্তর্ভুক্ত থাকতে পারে যা আপনি ব্যবহার করেন না। আপনি অনুমোদিত তালিকা থেকে API সরাতে পারেন, কিন্তু আপনাকে খুব সতর্ক থাকতে হবে যেন Firebase এবং আপনার ব্যবহৃত Firebase পরিষেবাগুলির জন্য প্রয়োজনীয় APIগুলি সরানো না হয় (প্রতিটি পরিষেবা / পণ্যের জন্য অনুমোদিত তালিকায় থাকা প্রয়োজন এমন Firebase-সম্পর্কিত API-এর তালিকা দেখুন)। অন্যথায়, Firebase পরিষেবাগুলিতে কল করার সময় আপনি ত্রুটি পাবেন।
পাসওয়ার্ড-ভিত্তিক Authentication ব্যবহার করলে কোটা কঠোর করুন।
আপনি যদি পাসওয়ার্ড-ভিত্তিক Firebase Authentication ব্যবহার করেন এবং কেউ আপনার এপিআই কী (API key) পেয়ে যায়, তবে Firebase Security Rules দ্বারা সুরক্ষিত থাকা পর্যন্ত তারা আপনার ফায়ারবেস প্রজেক্টের ডেটাবেস বা Cloud Storage কোনো ডেটা অ্যাক্সেস করতে পারবে না । তবে, তারা আপনার এপিআই কী ব্যবহার করে ফায়ারবেসের অথেনটিকেশন এন্ডপয়েন্টগুলো অ্যাক্সেস করতে এবং আপনার প্রজেক্টের বিরুদ্ধে অথেনটিকেশন রিকোয়েস্ট পাঠাতে পারবে।
কেউ যাতে এপিআই কী (API key) অপব্যবহার করে ব্রুট ফোর্স অ্যাটাক করার চেষ্টা না করে, সেই সম্ভাবনা কমানোর জন্য, আপনি আপনার অ্যাপের স্বাভাবিক ট্র্যাফিকের প্রত্যাশা অনুযায়ী identitytoolkit.googleapis.com এন্ডপয়েন্টগুলোর ডিফল্ট কোটা কঠোর করতে পারেন। মনে রাখবেন যে, আপনি যদি এই কোটা কঠোর করেন এবং আপনার অ্যাপে হঠাৎ করে ব্যবহারকারীর সংখ্যা বেড়ে যায়, তাহলে কোটা না বাড়ানো পর্যন্ত আপনি সাইন-ইন ত্রুটি পেতে পারেন। আপনি Google Cloud কনসোলে আপনার প্রোজেক্টের এপিআই কোটা পরিবর্তন করতে পারেন।
যেকোনো নন-ফায়ারবেস পরিষেবার জন্য আলাদা, সীমাবদ্ধ API কী ব্যবহার করুন।
যদিও ফায়ারবেস পরিষেবাগুলিতে ব্যবহৃত এপিআই কীগুলিকে সাধারণত গোপনীয় হিসাবে বিবেচনা করার প্রয়োজন হয় না, তবুও অন্যান্য Google Cloud এপিআই-এর সাথে ব্যবহৃত এপিআই কীগুলির ক্ষেত্রে আপনার কিছু অতিরিক্ত সতর্কতা অবলম্বন করা উচিত।
আপনি যদি (যেকোনো প্ল্যাটফর্মে) এমন কোনো Google Cloud এপিআই ব্যবহার করেন যা কোনো ফায়ারবেস পরিষেবা বা পণ্যের জন্য নয়, তাহলে আমরা সেই এপিআইগুলোর জন্য আলাদা, সীমাবদ্ধ এপিআই কী তৈরি করার জন্য দৃঢ়ভাবে সুপারিশ করি। এপিআইটি যদি কোনো বিলযোগ্য Google Cloud পরিষেবার জন্য হয়, তবে এটি বিশেষভাবে গুরুত্বপূর্ণ।
উদাহরণস্বরূপ, যদি আপনি iOS-এ Firebase ML এবং Cloud Vision API ব্যবহার করেন, তাহলে আপনার আলাদা API কী তৈরি করা উচিত যা আপনি শুধুমাত্র Cloud Vision API অ্যাক্সেস করার জন্য ব্যবহার করবেন।
নন-ফায়ারবেস এপিআইগুলোর জন্য আলাদা, সীমাবদ্ধ এপিআই কী ব্যবহার করে, আপনি প্রয়োজনে কীগুলো পরিবর্তন বা প্রতিস্থাপন করতে পারেন এবং ফায়ারবেস পরিষেবা ব্যবহারে কোনো ব্যাঘাত না ঘটিয়েই এপিআই কীগুলোতে অতিরিক্ত সীমাবদ্ধতা যোগ করতে পারেন ।
এই নির্দেশাবলীতে বর্ণনা করা হয়েছে কীভাবে Super Service API নামক একটি নকল এপিআই-এর জন্য একটি পৃথক, সীমাবদ্ধ এপিআই কী (API key) তৈরি করতে হয়।
ধাপ ১: Super Service API তে অ্যাক্সেস বন্ধ করতে আপনার বিদ্যমান এপিআই কীগুলি কনফিগার করুন।
Google Cloud কনসোলের ক্রেডেনশিয়ালস পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রজেক্টটি নির্বাচন করুন।
তালিকায় থাকা প্রতিটি API কী-এর জন্য এডিটিং ভিউ খুলুন।
এপিআই সীমাবদ্ধতা বিভাগে, ‘কী সীমাবদ্ধ করুন’ (Restrict key) নির্বাচন করুন, তারপর তালিকায় সেই সমস্ত এপিআই যুক্ত করুন যেগুলিতে আপনি এপিআই কী-এর অ্যাক্সেস দিতে চান। খেয়াল রাখবেন যেন সেই এপিআইটি অন্তর্ভুক্ত না হয় যার জন্য আপনি একটি পৃথক এপিআই কী তৈরি করছেন (এই উদাহরণে,
Super Service API)।যখন আপনি একটি API কী-এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই API-গুলো ঘোষণা করেন যেগুলোতে কী-টির অ্যাক্সেস থাকবে। ডিফল্টরূপে, যখন API সীমাবদ্ধতা বিভাগে 'কী সীমাবদ্ধ করবেন না' (Don't restrict key) বিকল্পটি নির্বাচিত থাকে, তখন একটি API কী ব্যবহার করে প্রজেক্টের জন্য সক্রিয় করা যেকোনো API অ্যাক্সেস করা যায়।
এখন, আপনার বিদ্যমান এপিআই কীগুলো Super Service API -তে অ্যাক্সেস দেবে না, কিন্তু প্রতিটি কী আপনার যোগ করা এপিআইগুলোর জন্য কাজ করতে থাকবে।
ধাপ ২: Super Service API অ্যাক্সেস করার জন্য একটি নতুন এপিআই কী তৈরি করুন এবং ব্যবহার করুন।
ক্রেডেনশিয়ালস পেজে ফিরে যান। নিশ্চিত করুন যে আপনার ফায়ারবেস প্রজেক্টটি এখনও নির্বাচিত আছে।
Create credentials > API key-তে ক্লিক করুন। নতুন API কী-টি লিখে নিন, তারপর Restrict key-তে ক্লিক করুন।
API বিধিনিষেধ বিভাগে, 'Restrict key' নির্বাচন করুন, তারপর তালিকায় শুধুমাত্র
Super Service APIযোগ করুন।এই নতুন এপিআই কী শুধুমাত্র
Super Service API-তে অ্যাক্সেস প্রদান করে।নতুন এপিআই কী ব্যবহার করার জন্য আপনার অ্যাপ ও পরিষেবাগুলো কনফিগার করুন।
পরিবেশ-নির্দিষ্ট এপিআই কী ব্যবহার করুন (প্রস্তাবিত)
আপনি যদি স্টেজিং এবং প্রোডাকশনের মতো বিভিন্ন এনভায়রনমেন্টের জন্য আলাদা আলাদা ফায়ারবেস প্রজেক্ট তৈরি করেন, তবে প্রতিটি অ্যাপ ইনস্ট্যান্স যেন তার সংশ্লিষ্ট ফায়ারবেস প্রজেক্টের সাথেই যোগাযোগ করে, তা নিশ্চিত করা জরুরি। উদাহরণস্বরূপ, আপনার স্টেজিং অ্যাপ ইনস্ট্যান্সের কখনোই আপনার প্রোডাকশন ফায়ারবেস প্রজেক্টের সাথে যোগাযোগ করা উচিত নয়। এর মানে হলো, আপনার স্টেজিং অ্যাপটিকে অবশ্যই আপনার স্টেজিং ফায়ারবেস প্রজেক্টের সাথে যুক্ত এপিআই কী (API key) ব্যবহার করতে হবে।
ডেভেলপমেন্ট থেকে স্টেজিং ও প্রোডাকশনে কোড পরিবর্তন স্থানান্তরের সমস্যা কমাতে, সরাসরি কোডের মধ্যে এপিআই কী (API key) অন্তর্ভুক্ত না করে, সেগুলোকে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করুন অথবা একটি কনফিগারেশন ফাইলে অন্তর্ভুক্ত করুন।
মনে রাখবেন যে, আপনি যদি Firebase ML সাথে ডেভেলপমেন্টের জন্য Firebase Local Emulator Suite ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি ডিবাগ-অনলি এপিআই কী (debug-only API key) তৈরি ও ব্যবহার করতে হবে। এই ধরনের কী তৈরি করার নির্দেশাবলী Firebase ML ডক্স- এ পাওয়া যাবে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন এবং সমস্যা সমাধান
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
হ্যাঁ, ডিফল্টরূপে, Firebase-সম্পর্কিত API-গুলির সাথে ব্যবহারের জন্য Firebase দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা সমস্ত API কী-তে স্বয়ংক্রিয়ভাবে "API বিধিনিষেধ" প্রয়োগ করা হয়। এই অনুমোদিত তালিকায় থাকা Firebase-সম্পর্কিত API-গুলির তালিকা দেখুন।
এই অনুমোদিত তালিকায় যুক্ত করা API-গুলো হলো সেইসব API, যেগুলোকে ক্লায়েন্ট-কোড থেকে Firebase পরিষেবাগুলো কল করে এবং আপনার Firebase প্রজেক্ট বা অ্যাপ শনাক্ত করার জন্য API কী-এর প্রয়োজন হয়। উল্লেখ্য যে, Firebase পরিষেবাগুলো ব্যবহারের জন্য প্রয়োজনীয় বেশিরভাগ API-এর ক্ষেত্রে আপনার API কী-এর অনুমোদিত তালিকায় থাকার আসলে কোনো প্রয়োজন নেই।
যেহেতু Firebase সমস্ত Firebase পরিষেবার জন্য প্রয়োজনীয় API যোগ করে, তাই একটি API কী-এর অনুমোদিত তালিকায় এমন পণ্যের API অন্তর্ভুক্ত থাকতে পারে যা আপনি ব্যবহার করেন না। আপনি অনুমোদিত তালিকা থেকে API সরাতে পারেন, কিন্তু আপনাকে খুব সতর্ক থাকতে হবে যেন Firebase এবং আপনার ব্যবহৃত Firebase পরিষেবাগুলির জন্য প্রয়োজনীয় APIগুলি সরানো না হয় (প্রতিটি পরিষেবা / পণ্যের জন্য অনুমোদিত তালিকায় থাকা প্রয়োজন এমন Firebase-সম্পর্কিত API-এর তালিকা দেখুন)। অন্যথায়, Firebase পরিষেবাগুলিতে কল করার সময় আপনি ত্রুটি পাবেন।
আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে আপনার সমস্ত API কী এবং সেগুলোর "API সীমাবদ্ধতা" দেখতে পারেন।
ফায়ারবেস কীভাবে এই "এপিআই সীমাবদ্ধতা" প্রয়োগ করে, সে সম্পর্কে নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:
২০২৪ সালের মে মাস থেকে, Firebase দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা সমস্ত নতুন API কী স্বয়ংক্রিয়ভাবে Firebase-সম্পর্কিত API-গুলির তালিকায় সীমাবদ্ধ হয়ে যাবে।
২০২৪ সালের মে মাস নাগাদ, ফায়ারবেস কর্তৃক পূর্বে স্বয়ংক্রিয়ভাবে সরবরাহ করা সমস্ত বিদ্যমান এবং অবাধ এপিআই কী-গুলো ফায়ারবেস-সম্পর্কিত এপিআই-এর তালিকা এবং প্রজেক্টের বর্তমানে সক্রিয় থাকা যেকোনো এপিআই-এর মধ্যে সীমাবদ্ধ করা হবে।
ফায়ারবেস দ্বারা পূর্বে স্বয়ংক্রিয়ভাবে সরবরাহ করা কোনো বিদ্যমান এবং ইতিমধ্যে সীমাবদ্ধ এপিআই কী পরিবর্তন করা হয়নি।
যেসব বিদ্যমান এপিআই কী ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা হয়নি , সেগুলো পরিবর্তন করা হয়নি।
আপনার Firebase অ্যাপের সাথে কোন API কী যুক্ত আছে তা নির্ধারণ করতে আপনি নিম্নলিখিত বিকল্পগুলির যেকোনো একটি ব্যবহার করতে পারেন:
Firebase কনসোল
এর প্রজেক্ট সেটিংস- এ যান এবং তারপরে নিচে স্ক্রল করে আপনার অ্যাপস কার্ডটিতে যান।
আপনার পছন্দের অ্যাপটি নির্বাচন করুন।
আপনার কাঙ্ক্ষিত অ্যাপটির ফায়ারবেস কনফিগারেশন ফাইল/অবজেক্টটি সংগ্রহ করুন এবং তারপরে এর এপিআই কী (API key) খুঁজুন:
Apple :
GoogleService-Info.plistডাউনলোড করুন, এবং তারপরAPI_KEYফিল্ডটি খুঁজুন।অ্যান্ড্রয়েড :
google-services.jsonফাইলটি ডাউনলোড করুন, আপনার কাঙ্ক্ষিত অ্যাপটির কনফিগারেশন খুঁজুন (এর প্যাকেজ নামটি দেখে), এবং তারপরcurrent_keyফিল্ডটি খুঁজুন।ওয়েব : Config অপশনটি নির্বাচন করুন, এবং তারপর
apiKeyফিল্ডটি খুঁজুন।
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(ইউআইডি) সংগ্রহ করুন এবং তারপরapiKeyIdমানটি পরবর্তী ধাপে পাস করুন।- Apple :
projects.iosApps.getকল করুন - অ্যান্ড্রয়েড :
projects.androidApps.getকল করুন - ওয়েব :
projects.webApps.getকল করুন
- Apple :
projects.locations.keys.getKeyStringকল করে API কী স্ট্রিংটি সংগ্রহ করুন।এই
keyStringসেই একই মান যা অ্যাপের কনফিগারেশন আর্টিফ্যাক্টে ( Apple | Android | Web ) পাওয়া যায়।
ফায়ারবেস অ্যাপল অ্যাপস — প্রতিটি অ্যাপের নিজস্ব কনফিগারেশন ফাইল থাকে এবং এতে কেবল একটি এপিআই কী তালিকাভুক্ত থাকতে পারে।
ফায়ারবেস অ্যান্ড্রয়েড অ্যাপস — ফায়ারবেস প্রোজেক্টের সমস্ত অ্যান্ড্রয়েড অ্যাপ একই কনফিগ ফাইলে তালিকাভুক্ত থাকে এবং প্রতিটি অ্যাপের জন্য শুধুমাত্র একটি এপিআই কী (API key) তালিকাভুক্ত থাকতে পারে। তবে, এই কনফিগ ফাইলের প্রতিটি অ্যাপের জন্য ভিন্ন ভিন্ন কী তালিকাভুক্ত থাকতে পারে।
ফায়ারবেস ওয়েব অ্যাপস — প্রতিটি অ্যাপের নিজস্ব কনফিগ অবজেক্ট থাকে এবং এতে কেবল একটি এপিআই কী তালিকাভুক্ত থাকতে পারে।
তবে, আপনি একটি অ্যাপের সাথে একাধিক API কী ব্যবহার করতে পারেন । আপনার অ্যাপের জন্য এই অন্যান্য API কীগুলি অ্যাক্সেস করার একটি ব্যবস্থা অবশ্যই রাখতে হবে, যেমন একটি এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে। অন্যান্য API কীগুলি অ্যাক্সেস করার ব্যবস্থাটি কেবল আপনার Firebase কনফিগ ফাইল/অবজেক্টে সেই API কীগুলি তালিকাভুক্ত থাকার উপর নির্ভর করতে পারবে না।
যখন আপনি প্রথমবার আপনার অ্যাপের Firebase কনফিগারেশন ফাইল/অবজেক্টটি সংগ্রহ করেন , তখন Firebase যাচাই করে দেখে যে আপনার প্রোজেক্টে এমন কোনো বিদ্যমান API কী আছে কি না, যেটির "অ্যাপ্লিকেশন রেস্ট্রিকশন" অ্যাপটির সাথে মেলে (উদাহরণস্বরূপ, Apple অ্যাপের জন্য একটি মিলে যাওয়া বান্ডেল আইডি)।
যদি Firebase মিলে যায় এমন কোনো সীমাবদ্ধ কী খুঁজে না পায়, তাহলে এটি কনফিগ ফাইল/অবজেক্টে Apple অ্যাপের জন্য iOS key , Android অ্যাপের জন্য Android key , এবং ওয়েব অ্যাপের জন্য Browser key তালিকাভুক্ত করবে (এই শর্তে যে, এই কীগুলো বিদ্যমান থাকবে এবং সেগুলোর ওপর এমন কোনো "অ্যাপ্লিকেশন সীমাবদ্ধতা" থাকবে না যা সেগুলোকে সেই অ্যাপের সাথে মিলতে বাধা দেয়)।
হ্যাঁ, আপনি আপনার কনফিগ ফাইল/অবজেক্ট থেকে ম্যানুয়ালি আপনার এপিআই কী (API key) মুছে ফেলতে পারেন। তবে, আপনার অ্যাপের এপিআই কী অ্যাক্সেস করার জন্য আপনাকে অবশ্যই অন্য কোনো ব্যবস্থা রাখতে হবে (যেমন এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে)। অন্যথায়, ফায়ারবেস সার্ভিসগুলোতে যেকোনো কল ব্যর্থ হবে।
হ্যাঁ, আপনি ম্যানুয়ালি একটি কনফিগারেশন ফাইল/অবজেক্ট এডিট করে কোনো অ্যাপের সাথে একটি ভিন্ন এপিআই কী যুক্ত করতে পারেন।
মনে রাখবেন যে, আপনি যদি কনসোল থেকে আপনার অ্যাপের কনফিগ ফাইল/অবজেক্টটি পুনরায় সংগ্রহ করেন , তবে এটি সর্বদা সেই API কী-গুলো তালিকাভুক্ত করবে যা Firebase স্বয়ংক্রিয়ভাবে সেই অ্যাপটির সাথে মিলিয়ে নেয় । সুতরাং, প্রয়োজন অনুযায়ী আপনাকে ম্যানুয়াল সম্পাদনাগুলো পুনরায় করতে হবে।
না, একটি এপিআই কী শুধুমাত্র একটি নির্দিষ্ট প্রজেক্টকে শনাক্ত করে এবং এটিকে অন্য কোনো প্রজেক্টে স্থানান্তর করা যায় না।
যদি আপনি কোনো অ্যাপ দ্বারা ব্যবহৃত একটি এপিআই কী মুছে ফেলেন, তাহলে সেই অ্যাপ থেকে এপিআই কল করা যাবে না। আপনি এমন রিপোর্ট, ইমেল বা ত্রুটি বার্তা পেতে পারেন যে আপনি একটি অবৈধ এপিআই কী ব্যবহার করার চেষ্টা করছেন।
এপিআই কী মুছে ফেলা স্থায়ী এবং তা পূর্বাবস্থায় ফেরানো যায় না।
একটি Firebase API কী-এর ক্ষেত্রে, শুধুমাত্র সেই API-গুলোকেই কী-টির "API restrictions" allowlist-এ অন্তর্ভুক্ত করার প্রয়োজন হয়, যেগুলোর জন্য ক্লায়েন্টকে কলের সাথে একটি API কী প্রদান করতে হয়। উল্লেখ্য যে, খুব কম সংখ্যক Firebase-সম্পর্কিত API-এর ক্ষেত্রেই এই আবশ্যকতাটি রয়েছে। আপনার প্রোজেক্টে সক্রিয় থাকা বেশিরভাগ Firebase-সম্পর্কিত API-এর জন্য কী-টির "API restrictions" allowlist-এ অন্তর্ভুক্ত করার কোনো প্রয়োজন নেই।
একটি Firebase API কী-এর জন্য 'API restrictions' allowlist-এ কোন কোন Firebase-সম্পর্কিত API অন্তর্ভুক্ত করতে হবে, তা নির্ধারণ করতে নিম্নলিখিত সারণিটি ব্যবহার করুন। মনে রাখবেন, Firebase API কী শুধুমাত্র Firebase পরিষেবাগুলির জন্যই ব্যবহার করা উচিত। নির্দিষ্ট ধরণের API-এর জন্য পৃথক, সীমাবদ্ধ API কী তৈরি করার বিষয়ে আরও জানুন।
আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে আপনার প্রোজেক্টের API কীগুলো দেখতে ও পরিচালনা করতে পারবেন।
| এপিআই নাম (পরিষেবার নাম) | এপিআই প্রদর্শনের নাম | সংশ্লিষ্ট ফায়ারবেস পরিষেবা / পণ্য |
|---|---|---|
| firebase.googleapis.com | ফায়ারবেস ম্যানেজমেন্ট এপিআই | সমস্ত পণ্য |
| logging.googleapis.com | ক্লাউড লগিং এপিআই | সমস্ত পণ্য |
| firebaseinstallations.googleapis.com | ফায়ারবেস ইনস্টলেশন এপিআই | Cloud Messaging , Crashlytics , In-App Messaging , Performance Monitoring , Remote Config , Firebase ML |
| firebaseappcheck.googleapis.com | ফায়ারবেস অ্যাপ চেক এপিআই | App Check |
| firebaseappdistribution.googleapis.com | ফায়ারবেস অ্যাপ ডিস্ট্রিবিউশন এপিআই | App Distribution |
| firebaseapptesters.googleapis.com | ফায়ারবেস অ্যাপ টেস্টার এপিআই | App Distribution |
| identitytoolkit.googleapis.com | আইডেন্টিটি টুলকিট এপিআই | Authentication |
| securetoken.googleapis.com | টোকেন পরিষেবা এপিআই | Authentication |
| firebaserules.googleapis.com * | ফায়ারবেস রুলস এপিআই | Cloud Firestore , Cloud Storage , Realtime Database |
| datastore.googleapis.com | ক্লাউড ডেটাস্টোর এপিআই | Cloud Firestore |
| firestore.googleapis.com | গুগল ক্লাউড ফায়ারস্টোর এপিআই | Cloud Firestore |
| fcmregistrations.googleapis.com | এফসিএম রেজিস্ট্রেশন এপিআই | Cloud Messaging |
| firebasestorage.googleapis.com | ফায়ারবেস এপিআই-এর জন্য ক্লাউড স্টোরেজ | Cloud Storage |
| firebasedynamiclinks.googleapis.com | ফায়ারবেস ডাইনামিক লিঙ্কস এপিআই | Dynamic Links |
| firebasehosting.googleapis.com * | ফায়ারবেস হোস্টিং এপিআই | Hosting |
| firebaseinappmessaging.googleapis.com | ফায়ারবেস ইন-অ্যাপ মেসেজিং এপিআই | In-App Messaging |
| firebaseml.googleapis.com | ফায়ারবেস এমএল এপিআই | Firebase ML |
| mlkit.googleapis.com ** | এমএল কিট এপিআই | Firebase ML |
| mobilecrashreporting.googleapis.com | মোবাইল ক্র্যাশ রিপোর্টিং এপিআই | Performance Monitoring |
| play.googleapis.com | গুগল প্লে অ্যান্ড্রয়েড ডেভেলপার এপিআই | Performance Monitoring |
| firebaseremoteconfig.googleapis.com | ফায়ারবেস রিমোট কনফিগ এপিআই | Performance Monitoring , Remote Config |
| firebaseremoteconfigrealtime.googleapis.com | ফায়ারবেস রিমোট কনফিগ রিয়েলটাইম এপিআই | Performance Monitoring , Remote Config |
| cloudconfig.googleapis.com ** | প্রযোজ্য নয় | Remote Config |
| firebasedatabase.googleapis.com * | ফায়ারবেস রিয়েলটাইম ডেটাবেস এপিআই | Realtime Database |
| firebasevertexai.googleapis.com | ফায়ারবেস এআই লজিক এপিআই | ফায়ারবেস এআই লজিক ক্লায়েন্ট এসডিকে |
| fpnv.googleapis.com | ফায়ারবেস ফোন নম্বর যাচাইকরণ এপিআই | Firebase Phone Number Verification |
* শুধুমাত্র তখনই প্রয়োজন হবে, যখন আপনি থার্ড-পার্টি টুলের সাথে ফায়ারবেস এপিআই কী ব্যবহার করছেন অথবা ফায়ারবেস সার্ভিস বা প্রোডাক্টে সরাসরি REST অ্যাক্সেস নিচ্ছেন।
প্রোডাক্টের SDK-এর পূর্ববর্তী সংস্করণগুলোর জন্য এটি আবশ্যক ছিল। আপনি যদি SDK-এর সর্বশেষ সংস্করণ ব্যবহার করেন, তাহলে API-টিকে কী-এর অনুমোদিত তালিকায় (allowlist) রাখার প্রয়োজন নেই।
সমস্যা সমাধান
আপনি যদি 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.
আপনার অ্যাপ এপিআই কল করার জন্য যে এপিআই কী ব্যবহার করে, সম্ভবত সেটিতে "এপিআই বিধিনিষেধ" প্রয়োগ করা আছে এবং কী-টির অনুমোদিত তালিকায় সেই এপিআইটি অন্তর্ভুক্ত নেই।
আপনি যদি কোনো Firebase-সম্পর্কিত পরিষেবা / পণ্য ব্যবহার করার চেষ্টা করার সময় এই ত্রুটিটি পান, তাহলে নিশ্চিত করুন যে আপনি যে API কী ব্যবহার করছেন , সেটির "API restrictions" allowlist-এ সমস্ত প্রয়োজনীয় API অন্তর্ভুক্ত রয়েছে।
আপনি যদি কোনো নন-ফায়ারবেস সার্ভিস ব্যবহার করার চেষ্টা করার সময় এই এররটি পান, তাহলে আমরা আপনাকে বিশেষভাবে সেই সার্ভিস এবং এপিআই-এর জন্য একটি নতুন এপিআই কী তৈরি করার জন্য দৃঢ়ভাবে সুপারিশ করছি। ফায়ারবেস এপিআই কী শুধুমাত্র ফায়ারবেস সার্ভিস / প্রোডাক্টের জন্যই ব্যবহার করা উচিত। নির্দিষ্ট ধরনের এপিআই-এর জন্য আলাদা, সীমাবদ্ধ এপিআই কী তৈরি করার বিষয়ে আরও জানুন।
আপনার ওয়েব অ্যাপে ব্যবহৃত এপিআই কী-তে সম্ভবত "এপিআই সীমাবদ্ধতা" (API Restrictions) প্রয়োগ করা আছে। যদি এমন হয়, তবে নিশ্চিত করুন যে ফায়ারবেস ম্যানেজমেন্ট এপিআই (Firebase Management API) অনুমোদিত এপিআই-এর তালিকায় রয়েছে।
অবৈধ এপিআই কী-এর কয়েকটি সাধারণ কারণ নিচে দেওয়া হলো:
এপিআই কী-টির উপর "এপিআই কী সীমাবদ্ধতা" (API Key Restrictions) প্রয়োগ করা থাকে, যা কী-টি ব্যবহার করতে চাওয়া অ্যাপটির জন্য এটিকে অমিলযোগ্য ("অ্যাপ্লিকেশন সীমাবদ্ধতা") অথবা কল করা এপিআই-এর জন্য এটিকে ব্যবহার অযোগ্য ("এপিআই সীমাবদ্ধতা") করে তোলে।
Google Cloud কনসোলে প্রজেক্ট থেকে এপিআই কী-টি মুছে ফেলা হয়েছে।
অ্যাপের ফায়ারবেস কনফিগারেশন ফাইল/অবজেক্টে তালিকাভুক্ত প্রজেক্ট আইডির জন্য এপিআই কী তৈরি করা হয়নি।
এই সমস্যাটি সমাধান করার একটি উপায় হলো আপনার অ্যাপের Firebase কনফিগারেশন ফাইল/অবজেক্টের আপডেট করা সংস্করণটি সংগ্রহ করা , এবং তারপর আপনার পুরানো কনফিগারেশন ফাইল/অবজেক্টটিকে নতুন আপডেট করা ফাইল/অবজেক্ট দিয়ে প্রতিস্থাপন করা । কোনো কনফিগারেশন ফাইল ডাউনলোডের জন্য পাঠানোর আগে বা কনসোলে কোনো কনফিগারেশন অবজেক্ট দেখানোর আগে, Firebase যাচাই করে দেখে যে সেখানে তালিকাভুক্ত API কী-গুলো অ্যাপের সাথে মেলে কি না।