Firebase-এর জন্য API কী ব্যবহার ও পরিচালনা সম্পর্কে জানুন

এপিআই কী হলো একটি অনন্য স্ট্রিং, যা ফায়ারবেস এবং গুগল পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার সময় আপনার ফায়ারবেস প্রোজেক্টে রিকোয়েস্ট রাউট করতে ব্যবহৃত হয়। এই পৃষ্ঠায় এপিআই কী সম্পর্কে প্রাথমিক তথ্যের পাশাপাশি ফায়ারবেস অ্যাপের সাথে এপিআই কী ব্যবহার ও পরিচালনার সেরা পদ্ধতিগুলো বর্ণনা করা হয়েছে।

আপনি যদি 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 অ্যাপগুলির জন্য Firebase দ্বারা স্বয়ংক্রিয়ভাবে তৈরি API কীগুলি

আপনি নিম্নলিখিত কাজগুলোর যেকোনো একটি করলে 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 অ্যাক্সেস করার জন্য ব্যবহার করবেন।

নন-ফায়ারবেস এপিআইগুলোর জন্য আলাদা, সীমাবদ্ধ এপিআই কী ব্যবহার করে, আপনি প্রয়োজনে কীগুলো পরিবর্তন বা প্রতিস্থাপন করতে পারেন এবং ফায়ারবেস পরিষেবা ব্যবহারে কোনো ব্যাঘাত না ঘটিয়েই এপিআই কীগুলোতে অতিরিক্ত সীমাবদ্ধতা যোগ করতে পারেন

পরিবেশ-নির্দিষ্ট এপিআই কী ব্যবহার করুন (প্রস্তাবিত)

আপনি যদি স্টেজিং এবং প্রোডাকশনের মতো বিভিন্ন এনভায়রনমেন্টের জন্য আলাদা আলাদা ফায়ারবেস প্রজেক্ট তৈরি করেন, তবে প্রতিটি অ্যাপ ইনস্ট্যান্স যেন তার সংশ্লিষ্ট ফায়ারবেস প্রজেক্টের সাথেই যোগাযোগ করে, তা নিশ্চিত করা জরুরি। উদাহরণস্বরূপ, আপনার স্টেজিং অ্যাপ ইনস্ট্যান্সের কখনোই আপনার প্রোডাকশন ফায়ারবেস প্রজেক্টের সাথে যোগাযোগ করা উচিত নয়। এর মানে হলো, আপনার স্টেজিং অ্যাপটিকে অবশ্যই আপনার স্টেজিং ফায়ারবেস প্রজেক্টের সাথে যুক্ত এপিআই কী (API key) ব্যবহার করতে হবে।

ডেভেলপমেন্ট থেকে স্টেজিং ও প্রোডাকশনে কোড পরিবর্তন স্থানান্তরের সমস্যা কমাতে, সরাসরি কোডের মধ্যে এপিআই কী (API key) অন্তর্ভুক্ত না করে, সেগুলোকে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করুন অথবা একটি কনফিগারেশন ফাইলে অন্তর্ভুক্ত করুন।

মনে রাখবেন যে, আপনি যদি Firebase ML সাথে ডেভেলপমেন্টের জন্য Firebase Local Emulator Suite ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি ডিবাগ-অনলি এপিআই কী (debug-only API key) তৈরি ও ব্যবহার করতে হবে। এই ধরনের কী তৈরি করার নির্দেশাবলী Firebase ML ডক্স- এ পাওয়া যাবে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন এবং সমস্যা সমাধান

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

সমস্যা সমাধান