Google 致力于为黑人社区推动种族平等。查看具体举措
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Отправить тестовое сообщение фоновому приложению

Чтобы начать работу с FCM, создайте простейший вариант использования: отправьте тестовое уведомление от компоновщика уведомлений на устройство разработки, когда приложение находится на устройстве в фоновом режиме. На этой странице перечислены все шаги для достижения этой цели, от настройки до проверки - она ​​может охватывать шаги, которые вы уже выполнили, если вы настроили клиентское приложение Android для FCM.

Настроить SDK

В этом разделе описаны задачи, которые вы, возможно, выполнили, если вы уже включили другие функции Firebase для своего приложения.

Прежде чем вы начнете

  • Установите или обновите Android Studio до последней версии.

  • Убедитесь, что ваш проект соответствует этим требованиям:

    • Целевой уровень API 16 (Jelly Bean) или более поздний
    • Использует Gradle 4.1 или новее
    • Использует Jetpack (AndroidX) , который включает следующие требования к версии:
      • com.android.tools.build:gradle v3.2.1 или новее
      • compileSdkVersion 28 или новее
  • Настройте физическое устройство или используйте эмулятор для запуска приложения.
    Обратите внимание, что для пакетов SDK Firebase, зависящих от сервисов Google Play, на устройстве или эмуляторе должны быть установлены сервисы Google Play.

  • Войдите в Firebase, используя свою учетную запись Google.

Если у вас еще нет проекта Android и вы просто хотите опробовать продукт Firebase, вы можете загрузить один из наших примеров быстрого запуска .

Создать проект Firebase

Прежде чем вы сможете добавить Firebase в свое приложение Android, вам необходимо создать проект Firebase для подключения к вашему приложению Android. Посетите Understand Firebase Projects, чтобы узнать больше о проектах Firebase.

Зарегистрируйте свое приложение в Firebase

Чтобы использовать Firebase в своем приложении для Android, вам необходимо зарегистрировать свое приложение в проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в проект.

  1. Зайдите в консоль Firebase .

  2. В центре страницы обзора проекта щелкните значок Android ( ) или Добавить приложение, чтобы запустить рабочий процесс настройки.

  3. Введите имя пакета вашего приложения в поле имени пакета Android .

  4. (Необязательно) Введите другую информацию о приложении: псевдоним приложения и сертификат подписи отладки SHA-1 .

  5. Щелкните Зарегистрировать приложение .

Добавьте файл конфигурации Firebase

  1. Добавьте в приложение файл конфигурации Firebase Android:

    1. Нажмите Загрузить google-services.json, чтобы получить файл конфигурации Firebase Android ( google-services.json ).

    2. Переместите файл конфигурации в каталог модуля (уровня приложения) вашего приложения.

  2. Чтобы включить продукты Firebase в своем приложении, добавьте плагин google-services в свои файлы Gradle.

    1. В файле Gradle корневого уровня (уровня проекта) ( build.gradle ) добавьте правила для включения подключаемого модуля Gradle служб Google. Убедитесь, что у вас есть репозиторий 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.5'  // 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 в вашем проекте. Кроме того, в рамках настройки Analytics вам необходимо добавить в приложение Firebase SDK для Google Analytics.

    Ява

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:27.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:21.1.0'
        implementation 'com.google.firebase:firebase-analytics:18.0.3'
    }
    

    Котлин + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:27.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:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:18.0.3'
    }
    

  2. Синхронизируйте свое приложение, чтобы убедиться, что все зависимости имеют необходимые версии.

Доступ к токену регистрации

Чтобы отправить сообщение на определенное устройство, вам необходимо знать регистрационный токен этого устройства. Поскольку вам нужно будет ввести токен в поле в консоли уведомлений для завершения этого руководства, обязательно скопируйте токен или надежно сохраните его после получения.

При первоначальном запуске вашего приложения FCM SDK генерирует регистрационный токен для экземпляра клиентского приложения. Если вы хотите настроить таргетинг на отдельные устройства или создать группы устройств, вам потребуется получить доступ к этому токену, расширив FirebaseMessagingService и переопределив onNewToken .

В этом разделе описывается, как получить токен и как отслеживать изменения в токене. Поскольку токен может быть повернут после первоначального запуска, настоятельно рекомендуется получить последний обновленный регистрационный токен.

Токен регистрации может измениться, когда:

  • Приложение восстановлено на новом устройстве
  • Пользователь удаляет / переустанавливает приложение
  • Пользователь очищает данные приложения.

Получить текущий регистрационный токен

Когда вам нужно получить текущий токен, вызовите FirebaseMessaging.getInstance().getToken() :

Ява

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();
        }
    });

Котлин + 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 вызов onNewToken срабатывает всякий раз, когда создается новый токен.

Ява

/**
 * 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(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);
}

Котлин + 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

После нажатия кнопки « Тест» целевое клиентское устройство (с приложением в фоновом режиме) должно получить уведомление в панели уведомлений системы.

Чтобы получить представление о доставке сообщений в ваше приложение, просмотрите панель отчетов FCM , на которой записывается количество сообщений, отправленных и открытых на устройствах iOS и Android, а также данные о «показах» (уведомлениях, которые видят пользователи) для приложений Android.

Следующие шаги

Отправляйте сообщения в передовые приложения

После того, как вы успешно отправили сообщения с уведомлениями, когда ваше приложение работает в фоновом режиме, см. Раздел Получение сообщений в приложении Android, чтобы начать отправку в приложения, находящиеся на переднем плане.

Выходите за рамки уведомлений

Чтобы выйти за рамки уведомлений и добавить в приложение другое, более продвинутое поведение, см.