Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

Настроить SDK

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

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

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

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

    • Цели API уровня 19 (KitKat) или выше
    • Использует Android 4.4 или выше
    • Использует Jetpack (AndroidX) , которая включает в себя выполнение этих требований версии:
      • com.android.tools.build:gradle v3.2.1 или более поздняя версия
      • compileSdkVersion 28 или более поздней версии
  • Настройка физического устройства или использовать эмулятор для запуска приложения.
    Обратите внимание , что Firebase SDKs с зависимостью от услуг в Google Play требуется устройство или эмулятор , чтобы службы Google Play установлена.

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

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

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

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

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

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

  1. Перейти к консоли Firebase .

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

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

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

  5. Выберите Зарегистрировать приложение.

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

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

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

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

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

    1. В корневом уровне ( на уровне проекта) Gradle файл ( build.gradle ), добавить правила , чтобы включить плагин Google Services 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.10'  // 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 Банка Москвы , объявить зависимость для библиотеки Firebase Cloud Messaging Android в вашем модуле (приложение уровня) Gradle файл (обычно app/build.gradle ).

    Для оптимальной работы с Firebase Cloud Messaging, мы рекомендуем позволяет Google Analytics в проекте Firebase и добавление Firebase SDK для Google Analytics для вашего приложения.

    Джава

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // 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 Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

    (Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

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

    Обратите внимание , что если вы используете несколько библиотеки Firebase в вашем приложении, мы настоятельно рекомендуем использовать спецификации для управления версиями библиотеки, что гарантирует , что все версии совместимы.

    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.0'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    Котлин + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // 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 Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

    (Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

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

    Обратите внимание , что если вы используете несколько библиотеки Firebase в вашем приложении, мы настоятельно рекомендуем использовать спецификации для управления версиями библиотеки, что гарантирует , что все версии совместимы.

    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.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    

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

Джава

/**
 * 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. В поле Добавить регистрационный маркер ТСМ, введите токен регистрации вы получили в предыдущем разделе данного руководства.

  7. Нажмите тест

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

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

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

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

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

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

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