Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

Fireক্যের সাথে ফায়ারবেস ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপ সেট আপ করুন

Crossক্যের সাথে আপনার ক্রস-প্ল্যাটফর্ম ফায়ারবায় ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপটি লিখতে, ফায়ারবেস ক্লাউড মেসেজিং এপিআই ব্যবহার করুন। ইউনিটি এসডিকে প্রতিটি প্ল্যাটফর্মের জন্য কিছু অতিরিক্ত সেটআপের প্রয়োজন সহ অ্যান্ড্রয়েড এবং আইওএস উভয়ের জন্যই কাজ করে।

তুমি শুরু করার আগে

পূর্বশর্ত

  • ইউনিটি 5.3 বা তার পরে ইনস্টল করুন।

  • (কেবলমাত্র iOS) নিম্নলিখিতগুলি ইনস্টল করুন:

    • এক্সকোড 9.4.1 বা তারপরে
    • কোকোপডস ১.৪.০ বা তারপরে
  • আপনার ityক্য প্রকল্পটি এই প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করুন:

    • আইওএসের জন্য - আইওএস 8 বা তার পরে লক্ষ্যবস্তু
    • অ্যান্ড্রয়েডের জন্য - এপিআই স্তরের 16 (জেলি বিন) বা তার পরে লক্ষ্যগুলি
  • আপনার ইউনিটি প্রকল্প চালানোর জন্য একটি ডিভাইস সেট আপ করুন বা একটি এমুলেটর ব্যবহার করুন।

    • আইওএসের জন্য - আপনার অ্যাপ্লিকেশনটি চালানোর জন্য একটি শারীরিক আইওএস ডিভাইস সেট আপ করুন এবং এই কাজগুলি সম্পূর্ণ করুন:

    • অ্যান্ড্রয়েডের জন্য - এমুলেটরদের অবশ্যই গুগল প্লে সহ একটি এমুলেটর চিত্র ব্যবহার করতে হবে।

যদি আপনার কাছে ইতিমধ্যে Unক্য প্রকল্প নেই এবং আপনি কেবল একটি ফায়ারবেস পণ্য ব্যবহার করে দেখতে চান তবে আপনি আমাদের কুইকস্টার্ট নমুনাগুলির মধ্যে একটি ডাউনলোড করতে পারেন।

পদক্ষেপ 1: একটি ফায়ারবেস প্রকল্প তৈরি করুন

আপনি আপনার ইউনিটি প্রকল্পে ফায়ারবেস যুক্ত করার আগে আপনার ইউনিটি প্রকল্পের সাথে সংযোগ স্থাপনের জন্য আপনাকে ফায়ারবেস প্রকল্প তৈরি করতে হবে। ফায়ারবেস প্রকল্পগুলি সম্পর্কে আরও জানতে ফায়ারবেস প্রকল্পগুলি বুঝতে দেখুন Visit

পদক্ষেপ 2: ফায়ারবেস দিয়ে আপনার অ্যাপ্লিকেশন নিবন্ধন করুন

আপনার ফায়ারবেস প্রকল্পের সাথে সংযোগ রাখতে আপনি এক বা একাধিক অ্যাপ্লিকেশন বা গেমগুলি নিবন্ধভুক্ত করতে পারেন।

  1. ফায়ারবেস কনসোলে যান।

  2. প্রকল্পের ওভারভিউ পৃষ্ঠার কেন্দ্রে সেটআপ ওয়ার্কফ্লো প্রবর্তন করতে ইউনিটি আইকন ( ) ক্লিক করুন।

    যদি আপনি ইতিমধ্যে আপনার ফায়ারবেস প্রকল্পে একটি অ্যাপ যুক্ত করেছেন, প্ল্যাটফর্মের বিকল্পগুলি প্রদর্শন করতে অ্যাপ্লিকেশন যুক্ত করুন ক্লিক করুন।

  3. আপনি যে ইউনিটি প্রকল্পটি নিবন্ধন করতে চান তার লক্ষ্য নির্ধারণ করুন বা আপনি একই সাথে এখন উভয় লক্ষ্য নির্ধারণ করতে পারেন তা নির্বাচন করুন।

  4. আপনার ইউনিটি প্রকল্পের প্ল্যাটফর্ম-নির্দিষ্ট আইডি (গুলি) লিখুন।

    • আইওএসের জন্য - আইওএস বান্ডিল আইডি ক্ষেত্রে আপনার ইউনিটি প্রকল্পের আইওএস আইডি লিখুন।

    • অ্যান্ড্রয়েডের জন্য - অ্যান্ড্রয়েড প্যাকেজের নাম ক্ষেত্রে আপনার ইউনিটি প্রকল্পের অ্যান্ড্রয়েড আইডি লিখুন।
      পদগুলির প্যাকেজের নাম এবং অ্যাপ্লিকেশন আইডি প্রায়শই আন্তঃসचेंज হিসাবে ব্যবহৃত হয়।

  5. (Alচ্ছিক) আপনার ইউনিটি প্রকল্পের প্ল্যাটফর্ম-নির্দিষ্ট ডাকনাম প্রবেশ করান।
    এই ডাকনামগুলি অভ্যন্তরীণ, সুবিধার্থে সনাক্তকারী এবং এটি কেবল ফায়ারবেস কনসোলটিতে আপনার কাছে দৃশ্যমান।

  6. অ্যাপ্লিকেশন রেজিস্টার ক্লিক করুন

পদক্ষেপ 3: ফায়ারবেস কনফিগারেশন ফাইল যুক্ত করুন

  1. ফায়ারবেস কনসোল সেটআপ ওয়ার্কফ্লোতে আপনার প্ল্যাটফর্ম-নির্দিষ্ট ফায়ারবেস কনফিগারেশন ফাইল (গুলি) পান।

    • আইওএসের জন্য - গুগল সার্ভিস-ইনফো.লিস্ট ডাউনলোড করুন ক্লিক করুন

    • অ্যান্ড্রয়েডের জন্য - google-Services.json ডাউনলোড করুন ক্লিক করুন

  2. আপনার ইউনিটি প্রকল্পের প্রকল্প উইন্ডোটি খুলুন, তারপরে আপনার কনফিগারেশন ফাইলগুলিকে Assets ফোল্ডারে সরান।

  3. ফায়ারবেস কনসোলে ফিরে, সেটআপ ওয়ার্কফ্লোতে, পরবর্তী ক্লিক করুন।

পদক্ষেপ 4: ফায়ারবেস ইউনিটি এসডিকে যুক্ত করুন

  1. ফায়ারবেস কনসোলে, ফায়ারবেস ইউনিটি এসডিকে ডাউনলোড করুন ক্লিক করুন , তারপরে সুবিধাজনক কোনও জায়গায় এসডিকে আনজিপ করুন।

  2. আপনার ওপেন ইউনিটি প্রকল্পে, সম্পদ > আমদানি প্যাকেজ > কাস্টম প্যাকেজ নেভিগেট করুন।

  3. আনজিপড এসডিকে থেকে, সমর্থিত ফায়ারবেস পণ্যগুলি নির্বাচন করুন যা আপনি আপনার অ্যাপ্লিকেশনটিতে ব্যবহার করতে চান।

    ফায়ারবেস ক্লাউড মেসেজিংয়ের সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার প্রকল্পে গুগল অ্যানালিটিকাগুলি সক্ষম করার প্রস্তাব দিই। এছাড়াও, অ্যানালিটিক্স স্থাপনের অংশ হিসাবে আপনার অ্যাপ্লিকেশনটিতে অ্যানালিটিকাদের জন্য ফায়ারবেস প্যাকেজ যুক্ত করা দরকার add

    বিশ্লেষণ সক্ষম

    • গুগল অ্যানালিটিক্সের জন্য ফায়ারবেস প্যাকেজ যুক্ত করুন: FirebaseAnalytics.unitypackage
    • ফায়ারবেস ক্লাউড মেসেজিংয়ের জন্য প্যাকেজ যুক্ত করুন: FirebaseMessaging.unitypackage

    বিশ্লেষণ সক্ষম নয়

    ফায়ারবেস ক্লাউড মেসেজিংয়ের জন্য প্যাকেজ যুক্ত করুন: FirebaseMessaging.unitypackage

  4. আমদানি ইউনিটি প্যাকেজ উইন্ডোতে, আমদানি ক্লিক করুন।

  5. ফায়ারবেস কনসোলে ফিরে, সেটআপ ওয়ার্কফ্লোতে, পরবর্তী ক্লিক করুন।

পদক্ষেপ 5: গুগল প্লে পরিষেবা সংস্করণ প্রয়োজনীয়তা নিশ্চিত করুন

অ্যান্ড্রয়েডের জন্য ফায়ারবেস ইউনিটি এসডিকে Google Play পরিষেবাদিগুলির প্রয়োজন , যা এসডিকে ব্যবহারের আগে অবশ্যই আপ-টু-ডেট হতে হবে।

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

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

আপনার ইউনিটি প্রকল্পটি ফায়ারবেস ব্যবহারের জন্য নিবন্ধিত এবং কনফিগার করা হয়েছে।

পদক্ষেপ 7: ব্যবহারকারীর বিজ্ঞপ্তিগুলির কাঠামো যুক্ত করুন

  1. এক্সকোডে প্রকল্পটি ক্লিক করুন, তারপরে সম্পাদক অঞ্চল থেকে সাধারণ ট্যাবটি নির্বাচন করুন।

  2. লিঙ্কযুক্ত ফ্রেমওয়ার্ক এবং লাইব্রেরিগুলিতে নিচে স্ক্রোল করুন, তারপরে ফ্রেমওয়ার্ক যুক্ত করতে + বোতামটি ক্লিক করুন।

  3. প্রদর্শিত উইন্ডোটিতে, UserNotifications.framework স্ক্রোল, যে এন্ট্রি ক্লিক করুন, তারপর ক্লিক যোগ করুন।

পদক্ষেপ 8: পুশ বিজ্ঞপ্তিগুলি সক্ষম করুন

  1. এক্সকোডে প্রকল্পটি ক্লিক করুন, তারপরে সম্পাদক এলাকা থেকে সক্ষমতার ট্যাবটি নির্বাচন করুন।

  2. পুশ বিজ্ঞপ্তিগুলি চালু করুন

  3. ব্যাকগ্রাউন্ড মোডে নীচে স্ক্রোল করুন, তারপরে এটি চালু করুন

  4. পটভূমি মোডের অধীনে দূরবর্তী বিজ্ঞপ্তি চেকবক্সটি নির্বাচন করুন।

ফায়ারবেস ক্লাউড মেসেজিং শুরু করুন

TokenReceived বা MessageReceived ইভেন্টগুলির জন্য হ্যান্ডলার যুক্ত করার সময় TokenReceived ক্লাউড মেসেজ লাইব্রেরিটি শুরু করা হবে।

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

এছাড়াও, আপনি যদি আগত বার্তাগুলি গ্রহণ করতে সক্ষম হতে চান তবে আপনাকে OnMessageReceived ইভেন্টের জন্য OnMessageReceived করতে হবে।

পুরো সেটআপটি দেখে মনে হচ্ছে:

public void Start() {
  Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
  Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}

public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
  UnityEngine.Debug.Log("Received Registration Token: " + token.Token);
}

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
  UnityEngine.Debug.Log("Received a new message from: " + e.Message.From);
}

অ্যান্ড্রয়েড এন্ট্রি পয়েন্ট ক্রিয়াকলাপ কনফিগার করা

অ্যান্ড্রয়েডে, ফায়ারবেস ক্লাউড মেসেজিং কাস্টম এন্ট্রি পয়েন্ট ক্রিয়াকলাপের সাথে বান্ডিল হয়ে আসে যা ডিফল্ট UnityPlayerActivity প্রতিস্থাপন করে। আপনি যদি কাস্টম এন্ট্রি পয়েন্ট ব্যবহার না করেন তবে এই প্রতিস্থাপনটি স্বয়ংক্রিয়ভাবে ঘটে এবং আপনার কোনও অতিরিক্ত পদক্ষেপ নিতে হবে না। যে অ্যাপ্লিকেশনগুলি ডিফল্ট এন্ট্রি পয়েন্ট ক্রিয়াকলাপ ব্যবহার করে না বা তাদের নিজস্ব Assets/Plugins/AndroidManifest.xml সরবরাহ করে তাদের অতিরিক্ত কনফিগারেশন প্রয়োজন।

অ্যান্ড্রয়েডে ফায়ারবেস ক্লাউড মেসেজিং ইউনিটি প্লাগইন দুটি অতিরিক্ত ফাইলের সাথে একত্রিত হয়:

  • Assets/Plugins/Android/libmessaging_unity_player_activity.jar মধ্যে MessagingUnityPlayerActivity নামে একটি ক্রিয়াকলাপ রয়েছে যা স্ট্যান্ডার্ড UnityPlayerActivity প্রতিস্থাপন করে।
  • Assets/Plugins/Android/AndroidManifest.xml নির্দেশ করে অ্যাপ্লিকেশন ব্যবহার করতে MessagingUnityPlayerActivity অ্যাপ্লিকেশানে এন্ট্রি পয়েন্ট হিসাবে।

এই ফাইলগুলি প্রদান করা হয় কারণ ডিফল্ট UnityPlayerActivity হ্যান্ডেল নেই onStop , onRestart কার্যকলাপ জীবনচক্র ট্রানজিশন বা বাস্তবায়ন onNewIntent যা সঠিকভাবে অন্তর্মুখী বার্তাগুলির হ্যান্ডেল করতে Firebase ক্লাউড মেসেজিং জন্য প্রয়োজনীয়।

একটি কাস্টম এন্ট্রি পয়েন্ট ক্রিয়াকলাপ কনফিগার করা

যদি আপনার অ্যাপ্লিকেশনটি ডিফল্ট UnityPlayerActivity ব্যবহার না করে তবে আপনার সরবরাহিত AndroidManifest.xml UnityPlayerActivity সরিয়ে ফেলতে হবে এবং আপনার কাস্টম ক্রিয়াকলাপটি অ্যান্ড্রয়েড ক্রিয়াকলাপ লাইফাইসাইকেলের সমস্ত স্থানান্তর সঠিকভাবে পরিচালনা করছে তা নিশ্চিত করতে হবে (এটি কীভাবে করবেন তার উদাহরণ নীচে দেখানো হয়েছে)। যদি আপনার কাস্টম কার্যকলাপটি UnityPlayerActivity প্রসারিত করে UnityPlayerActivity আপনি পরিবর্তে com.google.firebase.MessagingUnityPlayerActivity প্রসারিত করতে পারেন যা সমস্ত প্রয়োজনীয় পদ্ধতি প্রয়োগ করে methods

যদি আপনি একটি কাস্টম ক্রিয়াকলাপ ব্যবহার করছেন এবং com.google.firebase.MessagingUnityPlayerActivity সম্প্রসারণ না com.google.firebase.MessagingUnityPlayerActivity , আপনার ক্রিয়াকলাপে আপনাকে নিম্নলিখিত স্নিপেটগুলি অন্তর্ভুক্ত করা উচিত।

/**
 * Workaround for when a message is sent containing both a Data and Notification payload.
 *
 * When the app is in the background, if a message with both a data and notification payload is
 * received the data payload is stored on the Intent passed to onNewIntent. By default, that
 * intent does not get set as the Intent that started the app, so when the app comes back online
 * it doesn't see a new FCM message to respond to. As a workaround, we override onNewIntent so
 * that it sends the intent to the MessageForwardingService which forwards the message to the
 * FirebaseMessagingService which in turn sends the message to the application.
 */
@Override
protected void onNewIntent(Intent intent) {
  Intent message = new Intent(this, MessageForwardingService.class);
  message.setAction(MessageForwardingService.ACTION_REMOTE_INTENT);
  message.putExtras(intent);
  message.setData(intent.getData());
  startService(message);
}

/**
 * Dispose of the mUnityPlayer when restarting the app.
 *
 * This ensures that when the app starts up again it does not start with stale data.
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
  if (mUnityPlayer != null) {
    mUnityPlayer.quit();
    mUnityPlayer = null;
  }
  super.onCreate(savedInstanceState);
}

অ্যান্ড্রয়েডে বার্তা বিতরণ সম্পর্কে নোট

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

অ্যাপটি পটভূমিতে থাকাকালীন প্রাপ্ত বার্তাগুলিতে তাদের নোটিফিকেশন ফিল্ডের সামগ্রীটি সিস্টেম ট্রে বিজ্ঞপ্তিটি তৈরি করতে ব্যবহৃত হয়েছে, তবে সেই বিজ্ঞপ্তি সামগ্রীটি এফসিএম-তে জানানো হবে না। অর্থাত্ FirebaseMessage.Notification বাতিল হয়ে যাবে।

সংক্ষেপে:

অ্যাপের অবস্থা বিজ্ঞপ্তি ডেটা দুটোই
অগ্রভাগ Firebase.Messaging.FirebaseMessaging.MessageReceived Firebase.Messaging.FirebaseMessaging.MessageReceived Firebase.Messaging.FirebaseMessaging.MessageReceived
পটভূমি সিস্টেম ট্রে Firebase.Messaging.FirebaseMessaging.MessageReceived বিজ্ঞপ্তি: সিস্টেম ট্রে
ডেটা: অভিপ্রায় অতিরিক্ত

স্বয়ংক্রিয় সূচনা প্রতিরোধ করুন

এফসিএম একটি ইনস্ট্যান্স আইডি উত্পন্ন করে, যা এফসিএম-এর মধ্যে নিবন্ধকরণ টোকেন হিসাবে ব্যবহৃত হয়। যখন কোনও ইনস্ট্যান্স আইডি তৈরি করা হয় তখন গ্রন্থাগারটি ফায়ারবেসে আইডেন্টিফায়ার এবং কনফিগারেশন ডেটা আপলোড করে। । এটি করার জন্য, Info.plist আপনার Info.plist (আপনার Info.plist GoogleService-Info.plist ) একটি মেটাডেটা মান যুক্ত GoogleService-Info.plist বা অ্যান্ড্রয়েডে আপনার AndroidManifest.xml GoogleService-Info.plist :

অ্যান্ড্রয়েড

<?xml version="1.0" encoding="utf-8"?>
<application>
  <meta-data android:name="firebase_messaging_auto_init_enabled"
             android:value="false" />
  <meta-data android:name="firebase_analytics_collection_enabled"
             android:value="false" />
</application>

আইওএস

FirebaseMessagingAutoInitEnabled = NO

FCM পুনরায় সক্ষম করতে, আপনি একটি রানটাইম কল করতে পারেন:

Firebase.Messaging.FirebaseMessaging.TokenRegistrationOnInitEnabled = true;

এই মানটি একবার সেট হয়ে গেলে অ্যাপ্লিকেশনটির পুনরায় শুরু হয় across

এফসিএম আপনার অ্যাপ্লিকেশনটিতে গভীর লিঙ্কযুক্ত বার্তাগুলি প্রেরণের মঞ্জুরি দেয়। গভীর লিঙ্কযুক্ত বার্তাগুলি গ্রহণ করতে, আপনাকে অবশ্যই আপনার অ্যাপ্লিকেশনটির জন্য গভীর লিঙ্কগুলি পরিচালনা করে এমন ক্রিয়াকলাপে একটি নতুন উদ্দেশ্য ফিল্টার যুক্ত করতে হবে। অভিযুক্ত ফিল্টারটি আপনার ডোমেনের গভীর লিঙ্কগুলি ধরা উচিত। আপনার বার্তাগুলিতে যদি কোনও গভীর লিঙ্ক না থাকে তবে এই কনফিগারেশনটি প্রয়োজনীয় নয়। অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল:

<intent-filter>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:host="CHANGE_THIS_DOMAIN.example.com" android:scheme="http"/>
  <data android:host="CHANGE_THIS_DOMAIN.example.com" android:scheme="https"/>
</intent-filter>

অভিপ্রায় ফিল্টারটি আরও নমনীয় করার জন্য একটি ওয়াইল্ডকার্ড নির্দিষ্ট করাও সম্ভব। উদাহরণ স্বরূপ:

<intent-filter>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:host="*.example.com" android:scheme="http"/>
  <data android:host="*.example.com" android:scheme="https"/>
</intent-filter>

যখন ব্যবহারকারীরা স্কিমের কোনও লিঙ্কযুক্ত একটি বিজ্ঞপ্তিটি ট্যাপ করে এবং আপনি নির্দিষ্ট করেছেন এমন হোস্ট করে, আপনার অ্যাপ্লিকেশনটি লিংকটি পরিচালনা করতে এই অভিযুক্ত ফিল্টারটির সাথে ক্রিয়াকলাপটি শুরু করবে।

পরবর্তী পদক্ষেপ

ক্লায়েন্ট অ্যাপ্লিকেশন সেট আপ করার পরে, আপনি ফায়ারবেস দিয়ে ডাউন স্ট্রিম এবং বিষয় বার্তা প্রেরণের জন্য প্রস্তুত। আরও শিখতে, কুইকস্টার্ট নমুনা দেখুন যা এই কার্যকারিতাটি প্রদর্শন করে।

আপনার অ্যাপ্লিকেশনে অন্যান্য, আরও উন্নত আচরণ যুক্ত করতে কোনও অ্যাপ্লিকেশন সার্ভার থেকে বার্তা প্রেরণের গাইডগুলি দেখুন:

মনে রাখবেন যে এই বৈশিষ্ট্যগুলি ব্যবহার করতে আপনার একটি সার্ভার বাস্তবায়ন প্রয়োজন।