یک پیام آزمایشی به یک برنامه پس‌زمینه ارسال کنید

برای شروع کار با FCM، ساده‌ترین مورد استفاده را بسازید: ارسال یک پیام اعلان آزمایشی از سازنده Notifications به یک دستگاه توسعه‌دهنده زمانی که برنامه در پس‌زمینه دستگاه است. این صفحه تمام مراحل برای دستیابی به این هدف را فهرست می‌کند، از راه‌اندازی تا تأیید - اگر یک برنامه کلاینت Android برای FCM راه‌اندازی کرده باشید، ممکن است مراحلی را که قبلاً انجام داده‌اید پوشش دهد.

SDK را تنظیم کنید

اگر قبلاً سایر ویژگی‌های Firebase را برای برنامه خود فعال کرده باشید، این بخش وظایفی را پوشش می‌دهد که ممکن است انجام داده باشید.

قبل از اینکه شروع کنی

  • اندروید استودیو را به آخرین نسخه آن نصب یا به روز کنید.

  • اطمینان حاصل کنید که پروژه شما این شرایط را برآورده می کند:

    • سطح API 19 (KitKat) یا بالاتر را هدف قرار می دهد
    • از اندروید 4.4 یا بالاتر استفاده می کند
    • از Jetpack (AndroidX) استفاده می‌کند، که شامل برآورده کردن الزامات نسخه است:
      • com.android.tools.build:gradle نسخه 3.2.1 یا بالاتر
      • compileSdkVersion 28 یا بالاتر
  • یک دستگاه فیزیکی راه اندازی کنید یا از یک شبیه ساز برای اجرای برنامه خود استفاده کنید.
    توجه داشته باشید که Firebase SDK با وابستگی به خدمات Google Play به دستگاه یا شبیه‌ساز نیاز دارد که سرویس‌های Google Play را نصب کند.

  • با استفاده از حساب Google خود وارد Firebase شوید.

اگر قبلاً پروژه Android ندارید و فقط می‌خواهید یک محصول Firebase را امتحان کنید، می‌توانید یکی از نمونه‌های شروع سریع ما را دانلود کنید.

یک پروژه Firebase ایجاد کنید

قبل از اینکه بتوانید Firebase را به برنامه Android خود اضافه کنید، باید یک پروژه Firebase برای اتصال به برنامه Android خود ایجاد کنید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase، از Understand Firebase Projects دیدن کنید.

برنامه خود را با Firebase ثبت کنید

برای استفاده از Firebase در برنامه Android خود، باید برنامه خود را در پروژه Firebase خود ثبت کنید. ثبت برنامه شما اغلب "افزودن" برنامه شما به پروژه شما نامیده می شود.

  1. به کنسول Firebase بروید.

  2. در مرکز صفحه نمای کلی پروژه، روی نماد Android ( ) یا افزودن برنامه کلیک کنید تا گردش کار راه اندازی شود.

  3. نام بسته برنامه خود را در قسمت نام بسته Android وارد کنید.

  4. (اختیاری) اطلاعات دیگر برنامه را وارد کنید: نام مستعار برنامه و گواهی امضای اشکال زدایی SHA-1 .

  5. روی ثبت برنامه کلیک کنید.

یک فایل پیکربندی Firebase اضافه کنید

  1. فایل پیکربندی Firebase Android را به برنامه خود اضافه کنید:

    1. برای دریافت فایل پیکربندی Android Firebase ( google-services.json ) روی Download google-services.json کلیک کنید.

    2. فایل پیکربندی خود را به پوشه ماژول (سطح برنامه) برنامه خود منتقل کنید.

  2. برای فعال کردن محصولات Firebase در برنامه خود، افزونه google-services را به فایل‌های Gradle خود اضافه کنید.

    1. در فایل Gradle در سطح ریشه (سطح پروژه) خود ( build.gradle )، قوانینی را اضافه کنید تا افزونه خدمات Google Gradle را نیز شامل شود. بررسی کنید که مخزن Maven Google را نیز دارید.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.13'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. در فایل Gradle ماژول (سطح برنامه) خود (معمولا app/build.gradle )، افزونه Google Services Gradle را اعمال کنید:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

SDK های Firebase را به برنامه خود اضافه کنید

  1. با استفاده از Firebase Android BoM ، وابستگی کتابخانه Android Firebase Cloud Messaging را در فایل Gradle ماژول (سطح برنامه) خود (معمولا app/build.gradle ) اعلام کنید.

    برای تجربه بهینه با Firebase Cloud Messaging، توصیه می‌کنیم Google Analytics را در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.1.0')
    
        // Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخه‌های سازگار کتابخانه‌های Firebase Android استفاده می‌کند.

    (جایگزین) وابستگی های کتابخانه Firebase را بدون استفاده از BoM اعلام کنید

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

    توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید، ما به شدت توصیه می کنیم از BoM برای مدیریت نسخه های کتابخانه استفاده کنید، که تضمین می کند همه نسخه ها سازگار هستند.

    dependencies {
        // Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging:23.0.6'
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.1.0')
    
        // Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخه‌های سازگار کتابخانه‌های Firebase Android استفاده می‌کند.

    (جایگزین) وابستگی های کتابخانه Firebase را بدون استفاده از BoM اعلام کنید

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

    توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید، ما به شدت توصیه می کنیم از BoM برای مدیریت نسخه های کتابخانه استفاده کنید، که تضمین می کند همه نسخه ها سازگار هستند.

    dependencies {
        // Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx:23.0.6'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
    }
    

  2. برنامه خود را همگام سازی کنید تا مطمئن شوید که همه وابستگی ها نسخه های لازم را دارند.

به نشانه ثبت نام دسترسی پیدا کنید

برای ارسال پیام به یک دستگاه خاص، باید رمز ثبت نام آن دستگاه را بدانید. از آنجایی که برای تکمیل این آموزش باید توکن را در قسمتی در کنسول Notifications وارد کنید، پس از بازیابی آن حتماً آن را کپی کنید یا به طور ایمن ذخیره کنید.

در راه اندازی اولیه برنامه شما، FCM SDK یک نشانه ثبت نام برای نمونه برنامه مشتری ایجاد می کند. اگر می‌خواهید دستگاه‌های منفرد را هدف قرار دهید یا گروه‌های دستگاه ایجاد کنید، باید با گسترش FirebaseMessagingService و لغو onNewToken به این نشانه دسترسی داشته باشید.

این بخش نحوه بازیابی توکن و نحوه نظارت بر تغییرات توکن را توضیح می دهد. از آنجایی که رمز می تواند پس از راه اندازی اولیه چرخانده شود، اکیداً به شما توصیه می شود که آخرین توکن ثبت نام به روز شده را بازیابی کنید.

رمز ثبت نام ممکن است زمانی تغییر کند که:

  • برنامه در یک دستگاه جدید بازیابی می شود
  • کاربر برنامه را حذف/نصب مجدد می کند
  • کاربر داده های برنامه را پاک می کند.

رمز ثبت نام فعلی را بازیابی کنید

هنگامی که نیاز به بازیابی رمز فعلی دارید، FirebaseMessaging.getInstance().getToken() :

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

نظارت بر تولید توکن

پاسخ به تماس onNewToken هر زمان که یک توکن جدید تولید شود فعال می شود.

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration token is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

پس از دریافت رمز، می توانید آن را به سرور برنامه خود ارسال کرده و با استفاده از روش دلخواه خود آن را ذخیره کنید.

یک پیام اعلان آزمایشی ارسال کنید

  1. برنامه را روی دستگاه مورد نظر نصب و اجرا کنید.

  2. مطمئن شوید که برنامه در پس‌زمینه دستگاه است.

  3. نوتیفیکیشن ساز را باز کنید و اعلان جدید را انتخاب کنید.

  4. متن پیام را وارد کنید

  5. ارسال پیام آزمایشی را انتخاب کنید.

  6. در فیلد با عنوان افزودن نشانه ثبت FCM، نشانه ثبت نامی را که در بخش قبلی این راهنما به دست آورده اید، وارد کنید.

  7. روی Test کلیک کنید

پس از اینکه روی Test کلیک کردید، دستگاه مشتری مورد نظر (با برنامه در پس‌زمینه) باید اعلان را در سینی اعلان‌های سیستم دریافت کند.

برای اطلاعات بیشتر در مورد تحویل پیام به برنامه خود، به داشبورد گزارش FCM مراجعه کنید، که تعداد پیام‌های ارسال شده و باز شده در دستگاه‌های Apple و Android را همراه با داده‌های «impressions» (اعلان‌هایی که کاربران مشاهده می‌کنند) را برای برنامه‌های Android ثبت می‌کند.

مراحل بعدی

ارسال پیام به برنامه های پیش زمینه

هنگامی که با موفقیت پیام‌های اعلان ارسال کردید، در حالی که برنامه شما در پس‌زمینه است، برای شروع ارسال به برنامه‌های پیش‌زمینه، به دریافت پیام‌ها در برنامه Android مراجعه کنید.

فراتر از پیام های اطلاع رسانی بروید

برای فراتر رفتن از پیام‌های اعلان و افزودن سایر رفتارهای پیشرفته‌تر به برنامه خود، ببینید: