Андроід

Перш ніж розпочати інтеграцію з Android, переконайтеся, що налаштування Налаштування - Firebase було повністю завершено.

Примітка

Push-сповіщення доступні з Targets API рівня 19 (KitKat) та Android 4.4 і новіших версій.

  1. Помістіть файл google-services.json в папку додатку на рівні додатку.
  2. Додайте пакет Google Services до додатку:
    1. У Gradle-файл кореневого рівня build.gradle додайте плагін Google Service:
      buildscript {
      
        repositories {
          google() // Maven-репозиторій Google
        }
      
        dependencies {
          // ...
          classpath 'com.google.gms:google-services:4.3.10' // плагін Google Services
        }
      }
      
      allprojects {
        // ...
      
        repositories { // ...
          google() // Maven-репозиторій Google
          // ...
        }
      }
      
    2. У Gradle-файлі рівня додатку build.gradle застосуйте плагін:
      app/build.gradle
      застосовуємо плагін: 'com.android.application'
      застосовуємо плагін: 'com.google.gms.google-services' // плагін Google Services
      
      android {
        // ...
      }
      
  3. Інтеграція Firebase SDK.

    1. У файлі gradle на рівні програми build.gradle оголосіть залежності з/без Firebase Android BOM:

      app/build.gradle
      dependencies {{ залежність
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
      
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-analytics' // якщо потрібна Firebase Analytics 
      }
      
      app/build.gradle
      dependencies {'''dependencies'''
        implementation 'com.google.firebase:firebase-messaging:23.0.0'
        implementation 'com.google.firebase:firebase-analytics:20.0.0' // якщо потрібна Firebase Analytics
      }
      
      app/build.gradle
      dependencies {{ dependencies
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
      
        implementation 'com.google.firebase:firebase-messaging-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx' // якщо потрібна Firebase Analytics
      }
      
      app/build.gradle
      dependencies {{ dependencies 'com.google.firefox'
        implementation 'com.google.firebase:firebase-messaging-ktx:23.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0' // якщо потрібна Firebase Analytics
      }
      
    2. Додайте сервіс в маніфест:

      app/src/main/AndroidManifest.xml
      <service 
          android:name=".java.MyFirebaseMessagingService"
          android:exported="false">> android:exported="false
          <intent-filter
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
          </intent-filter> </intent-filter
      </service>
      
      app/src/main/AndroidManifest.xml
      <service
          android:name=".kotlin.MyFirebaseMessagingService"
          android:exported="false">> android:exported="false
          <intent-filter
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
          </intent-filter> </intent-filter
      </service>
      
    3. Створити метод FirebaseMessaging.getInstance().getToken() для отримання поточного токену. Приклад класу MainActivity:

      MainActivity.java
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      public class MainActivity extends AppCompatActivity {
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
              setContentView(binding.getRoot());
      
              binding.logTokenButton.setOnClickListener(new View.OnClickListener() {
                  Перевизначити
                  public void onClick(View v) {
                      FirebaseMessaging.getInstance().getToken()
                          .addOnCompleteListener(new OnCompleteListener<String>() {
                              Перевизначити
                              public void onComplete(@NonNull Task<String> task) { //Обмеження
                                  if (!task.isSuccessful()) {
                                      return;
                                  }
      
                                  Рядок token = task.getResult();
                                  String msg = getString(R.string.msg_token_fmt, token);
                                  // надсилаємо запит до методу NeuCurrent на реєстрацію токену згідно з інтерфейсом Swagger UI
                              }
                          });
      
                  }
            }
          }
      }
      
      MainActivity.kt
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      class MainActivity : AppCompatActivity() {
      
          перевизначити fun onCreate(savedInstanceState: Зв'язка?) { } }
              super.onCreate(savedInstanceState)
              val binding = ActivityMainBinding.inflate(layoutInflater)
              setContentView(binding.root)
      
              binding.logTokenButton.setOnClickListener {
                  FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->)
                      if (!task.isSuccessful) {
                          return@OnCompleteListener
                      }
      
                      val token = task.result
                      val msg = getString(R.string.msg_token_fmt, token)
                      // надсилаємо запит до методу NeuCurrent для реєстрації токену згідно Swagger UI 
                  })
              }
          }
      }
      

      Надсилання запиту за допомогою NeuCurrent API

      Зверніть увагу, що в коді ви повинні відправити HTTP-запит до NeuCurrent API з отриманим токеном пристрою на https://app.neucurrent.com/push/api/v1/device-token/add. Документація: https://app.neucurrent.com/push/api/v1/docs

    4. Створіть файл MyFirebaseMessagingService та додайте метод отримання регенерованого токену:

      public class MyFirebaseMessagingService extends FirebaseMessagingService {
          @Override
          public void onNewToken(String token) {
          // надсилаємо запит до методу NeuCurrent на реєстрацію токену згідно з Swagger UI
          }
      }
      
      class MyFirebaseMessagingService : FirebaseMessagingService() {
          перевизначити fun onNewToken(token: String) { // надсилаємо запит до Firebase Messaging Service
          // надсилаємо запит до методу NeuCurrent для реєстрації токену згідно Swagger UI
          }
      }
      
  4. Вітаємо! Ви завершили процес інтеграції.

Додаткові джерела: