যদি আপনার অ্যান্ড্রয়েড অ্যাপ Firebase ML এর ক্লাউড এপিআইগুলির একটি ব্যবহার করে, আপনি আপনার অ্যাপটি উৎপাদনে লঞ্চ করার আগে, অননুমোদিত API অ্যাক্সেস রোধ করতে আপনাকে কিছু অতিরিক্ত পদক্ষেপ নিতে হবে।
আপনার প্রোডাকশন অ্যাপের জন্য, আপনি নিশ্চিত করবেন যে শুধুমাত্র প্রমাণীকৃত ক্লায়েন্টরাই ক্লাউড পরিষেবা অ্যাক্সেস করতে পারবে। (উল্লেখ্য যে শুধুমাত্র নন-রুটেড ডিভাইসগুলি বর্ণিত পদ্ধতি ব্যবহার করে প্রমাণীকরণ করতে পারে।)
তারপর, আপনি একটি ডিবাগ-শুধু API কী তৈরি করবেন যা আপনি পরীক্ষা এবং বিকাশের সময় সুবিধার জন্য ব্যবহার করতে পারেন।
1. Firebase-এ আপনার প্রোডাকশন অ্যাপ নিবন্ধন করুন
প্রথমে, আপনার প্রোডাকশন অ্যাপগুলিকে Firebase-এর সাথে নিবন্ধন করুন৷
আপনার অ্যাপের SHA-1 স্বাক্ষর রয়েছে তা নিশ্চিত করুন। কিভাবে জানতে আপনার ক্লায়েন্ট প্রমাণীকরণ দেখুন.
Firebase কনসোলে আপনার প্রজেক্ট সেটিংসে যান, তারপর সেটিংস ট্যাবটি নির্বাচন করুন৷
আপনার অ্যাপস কার্ডে নিচে স্ক্রোল করুন, তারপর আপনার অ্যান্ড্রয়েড অ্যাপ নির্বাচন করুন।
আপনার অ্যাপের তথ্যে আপনার অ্যাপের SHA-1 স্বাক্ষর যোগ করুন।
2. আপনার API কীগুলির সুযোগ সীমাবদ্ধ করুন৷
এরপরে, ক্লাউড ভিশন API-এ অ্যাক্সেসের অনুমতি না দেওয়ার জন্য আপনার বিদ্যমান API কীগুলি কনফিগার করুন:
Google Cloud কনসোলের শংসাপত্র পৃষ্ঠা খুলুন। অনুরোধ করা হলে, আপনার প্রকল্প নির্বাচন করুন.
তালিকায় বিদ্যমান প্রতিটি API কী-এর জন্য, সম্পাদনা দৃশ্য খুলুন।
এপিআই সীমাবদ্ধতা বিভাগে, সীমাবদ্ধ কী নির্বাচন করুন, তারপরে আপনি API কী-এর অ্যাক্সেস পেতে চান এমন সমস্ত API তালিকায় যোগ করুন। ক্লাউড ভিশন API অন্তর্ভুক্ত না করা নিশ্চিত করুন।
আপনি যখন একটি API কী এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই APIগুলি ঘোষণা করেন যেখানে কীটির অ্যাক্সেস রয়েছে৷ ডিফল্টরূপে, যখন API বিধিনিষেধ বিভাগে Don't restrict key নির্বাচন করা থাকে, তখন একটি API কী ব্যবহার করা যেতে পারে প্রজেক্টের জন্য সক্ষম করা যেকোনো API অ্যাক্সেস করতে।
এখন, আপনার বিদ্যমান API কীগুলি ক্লাউড এমএল পরিষেবাগুলিতে অ্যাক্সেস মঞ্জুর করবে না, তবে প্রতিটি কী আপনি এর API সীমাবদ্ধতা তালিকায় যুক্ত যে কোনও APIগুলির জন্য কাজ করতে থাকবে৷
মনে রাখবেন যে আপনি যদি ভবিষ্যতে কোনো অতিরিক্ত API সক্রিয় করেন, তাহলে আপনাকে অবশ্যই প্রযোজ্য API কী-এর জন্য API সীমাবদ্ধতা তালিকায় যোগ করতে হবে।
3. একটি ডিবাগ-শুধু API কী তৈরি করুন এবং ব্যবহার করুন৷
অবশেষে, শুধুমাত্র বিকাশের জন্য ব্যবহার করার জন্য একটি নতুন API কী তৈরি করুন। Firebase ML এই API কী ব্যবহার করতে পারে এমন পরিবেশে Google Cloud পরিষেবাগুলি অ্যাক্সেস করতে যেখানে অ্যাপ প্রমাণীকরণ সম্ভব নয়, যেমন এমুলেটরগুলিতে চলাকালীন।
বিকাশের জন্য ব্যবহার করার জন্য একটি নতুন API কী তৈরি করুন:
Google Cloud কনসোলের শংসাপত্র পৃষ্ঠা খুলুন। অনুরোধ করা হলে, আপনার প্রকল্প নির্বাচন করুন.
শংসাপত্র তৈরি করুন > API কী ক্লিক করুন এবং নতুন API কী নোট করুন। এই কী অপ্রমাণিত অ্যাপ থেকে API অ্যাক্সেসের অনুমতি দেয়, তাই এই কী গোপনীয় রাখুন ।
আপনার প্রকাশিত অ্যাপের সাথে নতুন ডিবাগ এপিআই কী ফাঁস না হয়েছে তা নিশ্চিত করতে, শুধুমাত্র ডিবাগ বিল্ডের জন্য ব্যবহৃত একটি অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে ডিবাগ এপিআই কী নির্দিষ্ট করুন:
আপনার যদি ইতিমধ্যে একটি ডিবাগ ম্যানিফেস্ট না থাকে, তাহলে ফাইল > নতুন > অন্যান্য > অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে ক্লিক করে এবং লক্ষ্য উৎস সেট থেকে
debug
নির্বাচন করে একটি তৈরি করুন।ডিবাগ ম্যানিফেস্টে, নিম্নলিখিত ঘোষণা যোগ করুন:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
আপনার অ্যাপে, প্রোডাকশনে আপনার ক্লায়েন্টকে প্রমাণীকরণ করতে এবং এপিআই কী-ডিবাগ কী-কে শুধুমাত্র ডিবাগ বিল্ডে ব্যবহার করতে শংসাপত্র ফিঙ্গারপ্রিন্ট ম্যাচিং ব্যবহার করতে Firebase ML কনফিগার করুন:
Kotlin+KTX
val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder() if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch() } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f) // ... // And lastly: val options = optionsBuilder.build() FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)
Java
FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder = new FirebaseVisionCloudImageLabelerOptions.Builder(); if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch(); } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f); // ... // And lastly: FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build(); FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);
পরবর্তী পদক্ষেপ
অন্যান্য ফায়ারবেস বৈশিষ্ট্যগুলি ব্যবহার করার সময় লঞ্চ করার জন্য আপনার অ্যাপ প্রস্তুত করার তথ্যের জন্য লঞ্চ চেকলিস্টটি দেখুন।