যদি আপনার অ্যান্ড্রয়েড অ্যাপটি Firebase ML এর ক্লাউড API ব্যবহার করে, তাহলে আপনার অ্যাপটি উৎপাদনে চালু করার আগে, অননুমোদিত API অ্যাক্সেস রোধ করার জন্য আপনার কিছু অতিরিক্ত পদক্ষেপ নেওয়া উচিত।
আপনার প্রোডাকশন অ্যাপের জন্য, আপনি নিশ্চিত করবেন যে শুধুমাত্র প্রমাণীকরণকৃত ক্লায়েন্টরাই ক্লাউড পরিষেবা অ্যাক্সেস করতে পারবে। (মনে রাখবেন যে শুধুমাত্র অ-রুটেড ডিভাইসগুলি বর্ণিত পদ্ধতি ব্যবহার করে প্রমাণীকরণ করতে পারবে।)
তারপর, আপনি একটি ডিবাগ-অনলি API কী তৈরি করবেন যা আপনি পরীক্ষা এবং বিকাশের সময় সুবিধার জন্য ব্যবহার করতে পারবেন।
১. ফায়ারবেসে আপনার প্রোডাকশন অ্যাপ নিবন্ধন করুন
প্রথমে, আপনার প্রোডাকশন অ্যাপগুলি Firebase-এ নিবন্ধন করুন।
আপনার অ্যাপের SHA-1 স্বাক্ষর আছে কিনা তা নিশ্চিত করুন। কীভাবে করবেন তা জানতে আপনার ক্লায়েন্টকে প্রমাণীকরণ করুন দেখুন।
Firebase কনসোলে আপনার "প্রজেক্ট সেটিংস" এ যান, তারপর সেটিংস ট্যাবটি নির্বাচন করুন।
আপনার অ্যাপস কার্ডে স্ক্রোল করুন, তারপর আপনার অ্যান্ড্রয়েড অ্যাপটি নির্বাচন করুন।
আপনার অ্যাপের তথ্যের সাথে আপনার অ্যাপের SHA-1 স্বাক্ষর যোগ করুন।
2. আপনার API কীগুলির পরিধি সীমিত করুন
এরপর, ক্লাউড ভিশন API-তে অ্যাক্সেস বন্ধ করতে আপনার বিদ্যমান API কীগুলি কনফিগার করুন:
Google Cloud কনসোলের ক্রেডেনশিয়াল পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রকল্পটি নির্বাচন করুন।
তালিকার প্রতিটি বিদ্যমান API কী-এর জন্য, সম্পাদনা দৃশ্য খুলুন।
API বিধিনিষেধ বিভাগে, Restrict key নির্বাচন করুন, তারপর তালিকায় সেই সমস্ত API যোগ করুন যেখানে আপনি API কী অ্যাক্সেস করতে চান। Cloud Vision API অন্তর্ভুক্ত না করার বিষয়টি নিশ্চিত করুন।
যখন আপনি একটি API কী-এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই API গুলি ঘোষণা করেন যেখানে কী-এর অ্যাক্সেস আছে । ডিফল্টরূপে, যখন API সীমাবদ্ধতা বিভাগে "Don't restrict key" নির্বাচন করা থাকে, তখন প্রকল্পের জন্য সক্রিয় যেকোনো API অ্যাক্সেস করতে একটি API কী ব্যবহার করা যেতে পারে।
এখন, আপনার বিদ্যমান API কীগুলি ক্লাউড ML পরিষেবাগুলিতে অ্যাক্সেস দেবে না, তবে প্রতিটি কী আপনার API বিধিনিষেধ তালিকায় যোগ করা যেকোনো API-এর জন্য কাজ করতে থাকবে।
মনে রাখবেন, ভবিষ্যতে যদি আপনি কোনও অতিরিক্ত API সক্রিয় করেন, তাহলে আপনাকে প্রযোজ্য API কী-এর জন্য API বিধিনিষেধের তালিকায় সেগুলি যোগ করতে হবে।
৩. একটি ডিবাগ-অনলি API কী তৈরি করুন এবং ব্যবহার করুন
অবশেষে, শুধুমাত্র ডেভেলপমেন্টের জন্য ব্যবহার করার জন্য একটি নতুন API কী তৈরি করুন। Firebase ML এই API কী ব্যবহার করে এমন পরিবেশে Google Cloud পরিষেবা অ্যাক্সেস করতে পারে যেখানে অ্যাপ প্রমাণীকরণ সম্ভব নয়, যেমন এমুলেটরে চলাকালীন।
ডেভেলপমেন্টের জন্য ব্যবহার করার জন্য একটি নতুন API কী তৈরি করুন:
Google Cloud কনসোলের ক্রেডেনশিয়াল পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রকল্পটি নির্বাচন করুন।
ক্রিয়েশনাল তৈরি করুন > API কী ক্লিক করুন এবং নতুন API কীটি নোট করুন। এই কীটি অপ্রমাণিত অ্যাপগুলি থেকে API অ্যাক্সেসের অনুমতি দেয়, তাই এই কীটি গোপন রাখুন ।
আপনার প্রকাশিত অ্যাপের সাথে নতুন ডিবাগ API কী ফাঁস না হয়ে যায় তা নিশ্চিত করতে, শুধুমাত্র ডিবাগ বিল্ডের জন্য ব্যবহৃত একটি অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে ডিবাগ API কী নির্দিষ্ট করুন:
যদি আপনার কাছে ইতিমধ্যেই কোনও ডিবাগ ম্যানিফেস্ট না থাকে, তাহলে ফাইল > নতুন > অন্যান্য > অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে ক্লিক করে এবং টার্গেট সোর্স সেট থেকে
debugনির্বাচন করে একটি তৈরি করুন।ডিবাগ ম্যানিফেস্টে, নিম্নলিখিত ঘোষণাটি যোগ করুন:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
আপনার অ্যাপে, Firebase ML কনফিগার করুন যাতে আপনার ক্লায়েন্টকে প্রোডাকশনে প্রমাণীকরণের জন্য সার্টিফিকেট ফিঙ্গারপ্রিন্ট ম্যাচিং ব্যবহার করা যায় এবং শুধুমাত্র ডিবাগ বিল্ডে API কী—ডিবাগ কী—ব্যবহার করা যায়:
Kotlin
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);
পরবর্তী পদক্ষেপ
অন্যান্য Firebase বৈশিষ্ট্য ব্যবহার করার সময় আপনার অ্যাপটি লঞ্চের জন্য প্রস্তুত করার তথ্যের জন্য লঞ্চ চেকলিস্টটি দেখুন।