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


এই কুইকস্টার্টটি বর্ণনা করে কিভাবে আপনার মোবাইল এবং ওয়েব ক্লায়েন্ট অ্যাপগুলিতে Firebase Cloud Messaging সেট আপ করবেন যাতে আপনি নির্ভরযোগ্যভাবে বার্তা পাঠাতে পারেন। সার্ভার পরিবেশের জন্য, আপনার সার্ভার পরিবেশ এবং FCM দেখুন।

ইউনিটির সাথে একটি Firebase Cloud Messaging ক্লায়েন্ট অ্যাপ সেট আপ করুন

ইউনিটি দিয়ে আপনার ক্রস-প্ল্যাটফর্ম Firebase Cloud Messaging ক্লায়েন্ট অ্যাপটি লেখার জন্য, Firebase Cloud Messaging API ব্যবহার করুন। ইউনিটি SDK অ্যান্ড্রয়েড এবং অ্যাপল উভয়ের জন্যই কাজ করে, প্রতিটি প্ল্যাটফর্মের জন্য কিছু অতিরিক্ত সেটআপ প্রয়োজন হয়।

শুরু করার আগে

পূর্বশর্ত

  • ইউনিটি ২০২১ LTS বা তার পরবর্তী সংস্করণ ইনস্টল করুন। ইউনিটি ২০২০ এর জন্য সমর্থন বন্ধ বলে বিবেচিত হবে এবং পরবর্তী প্রধান রিলিজের পরে এটি আর সক্রিয়ভাবে সমর্থিত হবে না। পূর্ববর্তী সংস্করণগুলিও সামঞ্জস্যপূর্ণ হতে পারে কিন্তু সক্রিয়ভাবে সমর্থিত হবে না।

  • (শুধুমাত্র অ্যাপল প্ল্যাটফর্মের জন্য) নিম্নলিখিতগুলি ইনস্টল করুন:

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

    • iOS-এর জন্য — iOS 13 বা তার উচ্চতর ভার্সনের জন্য
    • tvOS-এর জন্য - tvOS 13 বা তার বেশি ভার্সনের জন্য
    • অ্যান্ড্রয়েডের জন্য — লক্ষ্যমাত্রা API স্তর 21 (ললিপপ) বা উচ্চতর
  • আপনার ইউনিটি প্রজেক্ট চালানোর জন্য একটি ডিভাইস সেট আপ করুন অথবা একটি এমুলেটর ব্যবহার করুন।

    • iOS বা tvOS-এর জন্য — আপনার অ্যাপ চালানোর জন্য একটি ফিজিক্যাল ডিভাইস সেট আপ করুন এবং এই কাজগুলি সম্পন্ন করুন:

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

যদি আপনার কাছে ইতিমধ্যেই কোন ইউনিটি প্রজেক্ট না থাকে এবং শুধুমাত্র একটি Firebase পণ্য চেষ্টা করে দেখতে চান, তাহলে আপনি আমাদের কুইকস্টার্ট নমুনাগুলির একটি ডাউনলোড করতে পারেন।

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

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

ধাপ ২: Firebase-এ আপনার অ্যাপ নিবন্ধন করুন

আপনার Firebase প্রকল্পের সাথে সংযোগ স্থাপনের জন্য আপনি এক বা একাধিক অ্যাপ বা গেম নিবন্ধন করতে পারেন।

  1. Firebase কনসোলে যান।

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

    যদি আপনি ইতিমধ্যেই আপনার Firebase প্রকল্পে একটি অ্যাপ যোগ করে থাকেন, তাহলে প্ল্যাটফর্ম বিকল্পগুলি প্রদর্শন করতে অ্যাপ যোগ করুন -এ ক্লিক করুন।

  3. আপনার ইউনিটি প্রজেক্টের কোন বিল্ড টার্গেটটি আপনি নিবন্ধন করতে চান তা নির্বাচন করুন, অথবা আপনি একই সময়ে উভয় টার্গেট নিবন্ধন করতেও নির্বাচন করতে পারেন।

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

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

    • অ্যান্ড্রয়েডের জন্যঅ্যান্ড্রয়েড প্যাকেজ নামের ক্ষেত্রে আপনার ইউনিটি প্রোজেক্টের অ্যান্ড্রয়েড আইডি লিখুন।
      প্যাকেজের নাম এবং অ্যাপ্লিকেশন আইডি শব্দ দুটি প্রায়শই বিনিময়যোগ্যভাবে ব্যবহৃত হয়।

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

  6. অ্যাপ নিবন্ধন করুন এ ক্লিক করুন।

ধাপ ৩: ফায়ারবেস কনফিগারেশন ফাইল যোগ করুন

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

    • iOS এর জন্যDownload GoogleService-Info.plist এ ক্লিক করুন।

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

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

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

ধাপ ৪: ফায়ারবেস ইউনিটি SDK যোগ করুন

  1. Firebase কনসোলে, Firebase Unity SDK ডাউনলোড করুন এ ক্লিক করুন, তারপর সুবিধাজনক কোথাও SDK আনজিপ করুন।

    • আপনি যেকোনো সময় আবার Firebase Unity SDK ডাউনলোড করতে পারেন।

    • Firebase Unity SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়।

  2. আপনার ওপেন ইউনিটি প্রজেক্টে, Assets > Import Package > Custom Package এ যান।

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

    Firebase Cloud Messaging এর সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার প্রোজেক্টে Google Analytics সক্ষম করার পরামর্শ দিচ্ছি। এছাড়াও, Analytics সেট আপ করার অংশ হিসেবে, আপনার অ্যাপে Analytics এর জন্য Firebase প্যাকেজ যোগ করতে হবে।

    Analytics সক্ষম করা হয়েছে

    • Google Analytics জন্য ফায়ারবেস প্যাকেজ যোগ করুন: FirebaseAnalytics.unitypackage
    • Firebase Cloud Messaging জন্য প্যাকেজটি যোগ করুন: FirebaseMessaging.unitypackage

    Analytics সক্ষম করা নেই

    Firebase Cloud Messaging জন্য প্যাকেজটি যোগ করুন: FirebaseMessaging.unitypackage

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

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

ধাপ ৫: গুগল প্লে সার্ভিসেস ভার্সনের প্রয়োজনীয়তা নিশ্চিত করুন

অ্যান্ড্রয়েডের জন্য Firebase Unity SDK-এর কিছু পণ্যের জন্য Google Play services প্রয়োজন। কোন পণ্যগুলিতে এই নির্ভরতা রয়েছে তা জানুন। এই পণ্যগুলি ব্যবহার করার আগে Google Play services আপ-টু-ডেট থাকতে হবে।

আপনার অ্যাপ্লিকেশনের শুরুতে নিম্নলিখিত using স্টেটমেন্ট এবং ইনিশিয়ালাইজেশন কোড যোগ করুন। SDK-তে অন্য কোনও পদ্ধতিতে কল করার আগে আপনি Google Play services প্রয়োজনীয় সংস্করণে পরীক্ষা করতে এবং ঐচ্ছিকভাবে আপডেট করতে পারেন।

using Firebase.Extensions;
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(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.
  }
});

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

অ্যাপল প্ল্যাটফর্মগুলির সাথে সেটআপ করুন

ইউনিটি এবং অ্যাপল প্ল্যাটফর্মের সাথে FCM সেট আপ করতে নিম্নলিখিত নির্দেশাবলী ব্যবহার করুন।

আপনার APN প্রমাণীকরণ কী আপলোড করুন

আপনার APN প্রমাণীকরণ কী Firebase-এ আপলোড করুন। যদি আপনার কাছে ইতিমধ্যেই একটি APN প্রমাণীকরণ কী না থাকে, তাহলে Apple Developer Member Center- এ একটি তৈরি করতে ভুলবেন না।

  1. Firebase কনসোলে আপনার প্রোজেক্টের ভিতরে, গিয়ার আইকনটি নির্বাচন করুন, প্রোজেক্ট সেটিংস নির্বাচন করুন এবং তারপর ক্লাউড মেসেজিং ট্যাবটি নির্বাচন করুন।

  2. iOS অ্যাপ কনফিগারেশনের অধীনে APNs প্রমাণীকরণ কী- তে, আপনার ডেভেলপমেন্ট প্রমাণীকরণ কী, অথবা প্রোডাকশন প্রমাণীকরণ কী, অথবা উভয়ই আপলোড করতে আপলোড বোতামে ক্লিক করুন। কমপক্ষে একটি প্রয়োজন।

  3. আপনার কী যেখানে সংরক্ষণ করেছেন সেই স্থানে ব্রাউজ করুন, এটি নির্বাচন করুন এবং খুলুন ক্লিক করুন। কীটির জন্য কী আইডি যোগ করুন ( অ্যাপল ডেভেলপার সদস্য কেন্দ্রে উপলব্ধ) এবং আপলোড ক্লিক করুন।

অ্যাপল প্ল্যাটফর্মগুলিতে পুশ বিজ্ঞপ্তি সক্ষম করুন

  1. Xcode-এ আপনার প্রোজেক্টে ক্লিক করুন, তারপর Editor এরিয়া থেকে General ট্যাবটি নির্বাচন করুন।
  2. লিঙ্কড ফ্রেমওয়ার্ক এবং লাইব্রেরিগুলিতে স্ক্রোল করুন, তারপর একটি ফ্রেমওয়ার্ক যোগ করতে + বোতামে ক্লিক করুন।
  3. যে উইন্ডোটি প্রদর্শিত হবে, সেখানে UserNotifications.framework এ স্ক্রোল করুন, সেই এন্ট্রিতে ক্লিক করুন, তারপর Add এ ক্লিক করুন।
  4. Xcode-এ আপনার প্রোজেক্টে ক্লিক করুন, তারপর Editor এরিয়া থেকে Capabilities ট্যাবটি নির্বাচন করুন।
  5. পুশ নোটিফিকেশন চালু করুন।
  6. ব্যাকগ্রাউন্ড মোডে স্ক্রোল করুন, তারপর এটিকে চালু করুন।
  7. ব্যাকগ্রাউন্ড মোডের অধীনে রিমোট নোটিফিকেশন চেকবক্সটি নির্বাচন করুন।

Firebase Cloud Messaging শুরু করুন

TokenReceived অথবা MessageReceived ইভেন্টের জন্য হ্যান্ডলার যোগ করার সময় Firebase Cloud Message লাইব্রেরিটি শুরু করা হবে।

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

এছাড়াও, যদি আপনি ইনকামিং বার্তা গ্রহণ করতে চান তবে আপনাকে 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);
}

অ্যান্ড্রয়েড প্ল্যাটফর্মের সাথে সেটআপ করুন

ইউনিটি এবং অ্যান্ড্রয়েড প্ল্যাটফর্মের সাথে FCM সেটআপ করতে নিম্নলিখিত নির্দেশাবলী ব্যবহার করুন।

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

Firebase Cloud Messaging একটি কাস্টম এন্ট্রি পয়েন্ট অ্যাক্টিভিটির সাথে আসে যা ডিফল্ট UnityPlayerActivity প্রতিস্থাপন করে। আপনি যদি কোনও কাস্টম এন্ট্রি পয়েন্ট ব্যবহার না করেন, তাহলে এই প্রতিস্থাপনটি স্বয়ংক্রিয়ভাবে ঘটে এবং আপনাকে কোনও অতিরিক্ত পদক্ষেপ নিতে হবে না।

অ্যান্ড্রয়েডে Firebase Cloud Messaging ইউনিটি প্লাগইন দুটি অতিরিক্ত ফাইলের সাথে আসে:

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

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

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

যদি আপনার অ্যাপটি ডিফল্ট UnityPlayerActivity ব্যবহার না করে, তাহলে আপনাকে সরবরাহ করা AndroidManifest.xml মুছে ফেলতে হবে এবং নিশ্চিত করতে হবে যে আপনার কাস্টম অ্যাক্টিভিটি অ্যান্ড্রয়েড অ্যাক্টিভিটি লাইফসাইকেলের সমস্ত ট্রানজিশন সঠিকভাবে পরিচালনা করে (এটি কীভাবে করবেন তার একটি উদাহরণ নীচে দেখানো হয়েছে)। যদি আপনার কাস্টম অ্যাক্টিভিটি UnityPlayerActivity প্রসারিত করে, তাহলে আপনি 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());
  // For earlier versions of Firebase C++ SDK (< 7.1.0), use `startService`.
  // startService(message);
  MessageForwardingService.enqueueWork(this, message);
}

/**
 * Dispose of the mUnityPlayer when restarting the app.
 *
 * This makes sure 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);
}

Firebase C++ SDK (7.1.0 এর পর থেকে) এর নতুন সংস্করণগুলি JobIntentService ব্যবহার করে যার জন্য AndroidManifest.xml ফাইলে অতিরিক্ত পরিবর্তন প্রয়োজন।

<service android:name="com.google.firebase.messaging.MessageForwardingService"
     android:permission="android.permission.BIND_JOB_SERVICE"
     android:exported="false" >
</service>

অ্যান্ড্রয়েডে বার্তা বিতরণ

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

অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন প্রাপ্ত বার্তাগুলির বিজ্ঞপ্তি ক্ষেত্রের বিষয়বস্তু সিস্টেম ট্রে বিজ্ঞপ্তি পূরণ করার জন্য ব্যবহৃত হয়, কিন্তু সেই বিজ্ঞপ্তি সামগ্রী FCM কে জানানো হবে না। এর অর্থ হল FirebaseMessage.Notification একটি শূন্য হবে।

সংক্ষেপে:

অ্যাপের অবস্থা বিজ্ঞপ্তি উপাত্ত উভয়ই
অগ্রভাগ Firebase.Messaging.FirebaseMessaging.MessageReceived Firebase.Messaging.FirebaseMessaging.MessageReceived Firebase.Messaging.FirebaseMessaging.MessageReceived
পটভূমি সিস্টেম ট্রে Firebase.Messaging.FirebaseMessaging.MessageReceived বিজ্ঞপ্তি: সিস্টেম ট্রে
তথ্য: অভিপ্রায়ের অতিরিক্ত অংশে।

FCM আপনার অ্যাপে একটি ডিপ লিঙ্ক সম্বলিত বার্তা পাঠানোর অনুমতি দেয়। ডিপ লিঙ্ক সম্বলিত বার্তা গ্রহণ করতে, আপনার অ্যাপের ডিপ লিঙ্ক পরিচালনা করে এমন কার্যকলাপে একটি নতুন ইন্টেন্ট ফিল্টার যোগ করতে হবে। ইন্টেন্ট ফিল্টারটি আপনার ডোমেনের ডিপ লিঙ্কগুলি ধরবে। AndroidManifest.xml-এ:

<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>

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

স্বয়ংক্রিয় আরম্ভ রোধ করুন

FCM ডিভাইস টার্গেটিংয়ের জন্য একটি রেজিস্ট্রেশন টোকেন তৈরি করে। যখন একটি টোকেন তৈরি করা হয়, তখন লাইব্রেরি Firebase-এ শনাক্তকারী এবং কনফিগারেশন ডেটা আপলোড করে। টোকেন ব্যবহার করার আগে যদি আপনি একটি স্পষ্ট অপ্ট-ইন পেতে চান, তাহলে FCM (এবং Android, Analytics-এ) অক্ষম করে কনফিগারেশনের সময় জেনারেশন প্রতিরোধ করতে পারেন। আপনি Apple-এ আপনার Info.plist (আপনার GoogleService-Info.plist নয়) অথবা Android-এ আপনার AndroidManifest.xml এ একটি মেটাডেটা মান যোগ করতে পারেন:

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

<?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;

একবার সেট করা হলে অ্যাপ রিস্টার্ট জুড়ে এই মানটি বজায় থাকে।

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

সেটআপ ধাপগুলি সম্পন্ন করার পরে, FCM for Unity-এর সাথে এগিয়ে যাওয়ার জন্য এখানে কয়েকটি বিকল্প রয়েছে: