আপনার Android প্রোজেক্টে Firebase যোগ করার অংশ হিসেবে, আপনাকে প্রোজেক্টে
Gradle প্লাগ-ইন এবং একটি
কনফিগারেশন ফাইল যোগ করতে হবে।
আপনি যদি Firebase কনসোল, ম্যানেজমেন্ট REST API অথবা Firebase CLI ব্যবহার করে আপনার Android প্রোজেক্টে Firebase যোগ করেন, তাহলে আপনাকে প্রোজেক্টে ম্যানুয়ালি Gradle প্লাগ-ইন ও JSON কনফিগারেশন ফাইল যোগ করতে হবে। তবে, আপনি Firebase Assistant for Android Studio ব্যবহার করলে, সেট-আপ করার সময় এইসব টাস্ক অটোমেটিক সম্পূর্ণ হয়ে যায়।
Gradle প্লাগ-ইন যোগ করুন
আপনি
Google পরিষেবা Gradle প্লাগ-ইন () আপনার
build.gradle ফাইলে যোগ করেন:
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
Google পরিষেবা Gradle প্লাগ-ইনের দুটি প্রধান ফাংশন আছে:
কনফিগারেশন ফাইল প্রসেস করে এবং Android রিসোর্স তৈরি করে যা আপনার অ্যাপের কোডে ব্যবহার করা যেতে পারে।google-services.json আপনার চালু করা পরিষেবার জন্য প্রয়োজনীয় বেসিক লাইব্রেরির ডিপেন্ডেন্সি যোগ করে। এই ধাপে আপনাকে
app/build.gradleফাইলে Google পরিষেবা Gradle প্লাগ-ইন প্রয়োগ করতে হবে, যেমন:
apply plugin: 'com.google.gms.google-services'./gradlew :app:dependenciesরান করে আপনি এই ধাপের ফলাফল দেখতে পাবেন।
JSON কনফিগারেশন ফাইল যোগ করুন
কনফিগ ফাইল সাধারণত app/
ডিরেক্টরিতে (Android Studio অ্যাপ মডিউলের রুটে) থাকে। 2.2.0 ভার্সন থেকে
প্লাগ-ইন বিল্ড টাইপ ও প্রোডাক্ট ফ্লেভার নির্দিষ্ট JSON ফাইল সাপোর্ট করে। নিম্নলিখিত সবকটি ডিরেক্টরি স্ট্রাকচার সঠিক:
// dogfood and release are build types.
app/
google-services.json
src/dogfood/google-services.json
src/release/google-services.json
...
প্রোডাক্ট ফ্লেভার ব্যবহার করা হলে, আরও জটিল ডিরেক্টরি স্ট্রাকচারও সঠিক হিসেবে বিবেচিত হয়।
// free and paid are product flavors.
app/
google-services.json
src/dogfood/paid/google-services.json
src/release/free/google-services.json
...
JSON কনফিগারেশন ফাইল কীভাবে প্রসেস করা হয়
কনফিগ ফাইলের প্রাথমিক স্ট্রাকচার নিচে দেওয়া হল:
{
"project_info": {...},
"client": [...],
}
project_info অবজেক্টে আপনার প্রোজেক্ট সম্পর্কে সাধারণ তথ্য থাকে, যেখানে
client অ্যারের প্রতিটি মেম্বারে ক্লায়েন্ট (Android অ্যাপ) সম্পর্কে তথ্য থাকে
যা আপনি প্রোজেক্টে যোগ করেছেন।
আপনার Android অ্যাপের জন্য JSON ফাইল প্রসেস করার সময়, প্লাগ-ইন শুধুমাত্র
client অবজেক্ট ব্যবহার করে যা আপনার প্যাকেজের নামের সাথে (বর্তমান বিল্ড টাইপের জন্য)
নিচের লজিকের ভিত্তিতে ম্যাচ করে:
clientঅ্যারের প্রতিটি মেম্বারের জন্য, প্লাগ-ইনclient_info/android_client_info/package_name-এর ভ্যালু চেক করে। প্যাকেজের নাম এই মানের সাথে মিলে গেলে, এটি মেম্বার অবজেক্ট রিটার্ন করে।client-এর কোনও মেম্বার প্যাকেজের নামের সাথে ম্যাচ না করলে, প্লাগ-ইন ব্যতিক্রম দেখায়।
এই ডকুমেন্টের বাকি অংশে YOUR_CLIENT ব্যবহার করে উপরে বর্ণিত লজিক দ্বারা নির্ধারিত client অ্যারের মেম্বারকে রেফার করা হয়।
XML ফাইল তৈরি করা
JSON প্রসেসিংয়ের মূল ফলাফল হল দুটি XML ফাইল তৈরি করা যেগুলি আপনি আপনার কোডে Android রিসোর্স হিসেবে রেফারেন্স করতে পারবেন। প্রতিটি ফাইলের উদাহরণ নিচে দেওয়া হল:
app/build/generated/res/google-services/{build_type}/values/values.xml<?xml version="1.0" encoding="utf-8"?> <resources> <! -- Present in all applications --> <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string> <! -- Present in applications with the appropriate services configured --> <string name="gcm_defaultSenderId" translatable="false">1035469437089</string> <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string> <string name="ga_trackingId" translatable="false">UA-65557217-3</string> <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string> <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="project_id" translatable="false">mydemoapp</string> </resources>app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml<?xml version="1.0" encoding="utf-8"?> <resources> <string name="ga_trackingId" translatable="false">UA-65557218-3</string> </resources>
XML ফাইলে থাকা ভ্যালু
XML ফাইলের প্রতিটি ভ্যালু নিচে তালিকাভুক্ত লোকেশনে
কনফিগারেশন ফাইলে রয়েছে। আপনার
Android প্রোজেক্টে এমন কিছু কনফিগারেশন থাকলে যা আপনাকে
Gradle প্লাগ-ইন ব্যবহার করতে বাধা দেয়, তাহলে আপনি এইসব ভ্যালু ব্যবহার করে নিরাপদে
XML ফাইলগুলি ম্যানুয়ালি আবার তৈরি করতে পারবেন।
google_app_idYOUR_CLIENT/client_info/mobilesdk_app_idgcm_defaultSenderIdproject_info/project_numberdefault_web_client_idYOUR_CLIENT/oauth_client/client_id (client_type == 3)ga_trackingIdYOUR_CLIENT/services/analytics-service/analytics_property/tracking_idfirebase_database_urlproject_info/firebase_urlgoogle_api_keyYOUR_CLIENT/api_key/current_keygoogle_crash_reporting_api_keyYOUR_CLIENT/api_key/current_keyproject_idproject_info/project_id
সমস্যার সমাধান
তৈরি করার সময়, আমি এই সমস্যার মেসেজটি পাই: File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it।
Firebase কনসোল
আপনাকে কনফিগ ফাইল ডাউনলোড করতে সাহায্য করবে।
কনফিগারেশন ফাইল ডাউনলোড করার পরে, এটি আপনার Android Studio প্রোজেক্টের
app/ ফোল্ডারে কপি করুন অথবা আপনি একাধিক বিল্ড টাইপ ব্যবহার করলে
app/src/{build_type} ফোল্ডারে কপি করুন।
আমি R.string.gcm_defaultSenderId বা R.xml.global_tracker-এর মতো চিহ্ন খুঁজে পাচ্ছি না।
আপনার build.gradle ফাইলে প্যাকেজের নাম google-services.json ফাইল তৈরি করার সময়
আপনার লেখা প্যাকেজের নামের সাথে মিলছে কিনা তা ভালোভাবে দেখে নিন। আপনি নিশ্চিত না হলে,
শুরু করার ফ্লো আবার দেখুন এবং নতুন JSON ফাইল পান।