Arka plandaki bir uygulamaya test mesajı gönderme

FCM ile çalışmaya başlamak için en basit kullanım alanını oluşturun: Uygulama cihazda arka plandayken Bildirim oluşturucu'dan bir geliştirme cihazına test bildirimi mesajı gönderme. Bu sayfada, kurulumdan doğrulamaya kadar bu hedefe ulaşmak için gereken tüm adımlar listelenir. FCM için Android istemci uygulaması kurduysanız daha önce tamamladığınız adımlar da bu listede yer alabilir.

SDK'yı ayarlama

Bu bölümde, uygulamanız için diğer Firebase özelliklerini daha önce etkinleştirdiyseniz tamamlamış olabileceğiniz görevler ele alınmaktadır.

Başlamadan önce

  • Android Studio'yu en son sürümüne yükleyin veya güncelleyin.

  • Projenizin bu koşulları karşıladığından emin olun (bazı ürünlerin daha katı koşulları olabileceğini unutmayın):

    • API düzeyi 21 (Lollipop) veya üstünü hedeflemelidir.
    • Android 5.0 veya sonraki bir sürümü kullanıyor olmalıdır.
    • Şu sürüm koşullarını karşılamayı içeren Jetpack (AndroidX) kullanır:
      • com.android.tools.build:gradle 7.3.0 veya sonraki sürümler
      • compileSdkVersion 28 veya sonraki sürümler
  • Uygulamanızı çalıştırmak için fiziksel bir cihaz ayarlayın veya emülatör kullanın.
    Google Play Hizmetleri'ne bağımlı Firebase SDK'larının kullanılması için cihazda veya emülatörde Google Play Hizmetleri'nin yüklü olması gerekir.

  • Google Hesabınızı kullanarak Firebase'de oturum açın.

Android projeniz yoksa ve yalnızca bir Firebase ürününü denemek istiyorsanız hızlı başlangıç örneklerimizden birini indirebilirsiniz.

Firebase projesi oluşturma

Firebase'i Android uygulamanıza ekleyebilmeniz için Android uygulamanıza bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.

Uygulamanızı Firebase'e kaydetme

Android uygulamanızda Firebase'i kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetme işlemi genellikle uygulamanızı projenize "ekleme" olarak adlandırılır.

  1. Firebase konsoluna gidin.

  2. Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki Android simgesini () veya Uygulama ekle'yi tıklayın.

  3. Uygulamanızın paket adını Android paket adı alanına girin.

  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata ayıklama imzalama sertifikası SHA-1.

  5. Uygulamayı kaydet'i tıklayın.

Firebase yapılandırma dosyası ekleme

  1. Uygulamanızın Firebase yapılandırma dosyasını (google-services.json) indirip kod tabanınıza ekleyin:

    1. Uygulamanızın Firebase yapılandırma dosyasını edinmek için Download google-services.json'u (google-services.json dosyasını indir) tıklayın.

    2. Yapılandırma dosyanızı uygulamanızın modül (uygulama düzeyinde) kök dizinine taşıyın.

  2. google-services.json Yapılandırma dosyanızdaki değerlerin Firebase SDK'ları tarafından erişilebilir olması için Google hizmetleri Gradle eklentisine (google-services) ihtiyacınız vardır.

    1. Kök düzeyindeki (proje düzeyinde) Gradle dosyanızda (<project>/build.gradle.kts veya <project>/build.gradle), Google hizmetleri eklentisini bağımlılık olarak ekleyin:

      Kotlin

      plugins {
        id("com.android.application") version "7.3.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.4.3" apply false
      }

      Groovy

      plugins {
        id 'com.android.application' version '7.3.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.4.3' apply false
      }
    2. Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), Google hizmetleri eklentisini ekleyin:

      Kotlin

      plugins {
        id("com.android.application")
      
        // Add the Google services Gradle plugin
        id("com.google.gms.google-services")
        // ...
      }

      Groovy

      plugins {
        id 'com.android.application'
      
        // Add the Google services Gradle plugin
        id 'com.google.gms.google-services'
        // ...
      }

Uygulamanıza Firebase SDK'larını ekleme

  1. Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), Android için Firebase Cloud Messaging kitaplığının bağımlılığını ekleyin. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

    Firebase Cloud Messaging ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'yi etkinleştirmenizi ve uygulamanıza Google Analytics için Firebase SDK'sını eklemenizi öneririz.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.0.0"))
    
        // Add 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 kullanıldığında uygulamanız Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.

    (Alternatif)  Firebase kitaplığı bağımlılıklarını BoM kullanmadan ekleyin.

    Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olması sağlanır.

    dependencies {
        // Add 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:25.0.0")
        implementation("com.google.firebase:firebase-analytics:23.0.0")
    }

  2. Android projenizi Gradle dosyalarıyla senkronize edin.

Kayıt jetonuna erişme

Belirli bir cihaza mesaj göndermek için cihazın kayıt jetonunu bilmeniz gerekir. Bu eğitimi tamamlamak için jetonu Bildirimler Konsolu'ndaki bir alana girmeniz gerektiğinden, jetonu aldıktan sonra kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.

Uygulamanız ilk kez başlatıldığında FCM SDK, istemci uygulaması örneği için bir kayıt jetonu oluşturur. Tek cihazları hedeflemek veya cihaz grupları oluşturmak istiyorsanız FirebaseMessagingService öğesini genişleterek ve onNewToken öğesini geçersiz kılarak bu jetona erişmeniz gerekir.

Bu bölümde, jetonun nasıl alınacağı ve jetonda yapılan değişikliklerin nasıl izleneceği açıklanmaktadır. Jeton, ilk başlatma işleminden sonra döndürülebileceğinden en son güncellenen kayıt jetonunu almanızı önemle tavsiye ederiz.

Kayıt jetonu şu durumlarda değişebilir:

  • Uygulama yeni bir cihaza geri yüklendi
  • Kullanıcı uygulamayı kaldırır/yeniden yüklerse
  • Kullanıcı, uygulama verilerini temizlerse

Mevcut kayıt jetonunu alma

Mevcut jetonu almanız gerektiğinde FirebaseMessaging.getInstance().getToken() işlevini çağırın:

Kotlin

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

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

Jeton oluşturmayı izleme

onNewToken geri çağırma işlevi, yeni bir jeton oluşturulduğunda her zaman tetiklenir.

Kotlin

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

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

Jetonu aldıktan sonra uygulama sunucunuza gönderebilir ve tercih ettiğiniz yöntemi kullanarak saklayabilirsiniz.

Test bildirimi mesajı gönderme

  1. Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda, uzaktan bildirim alma izni isteğini kabul etmeniz gerekir.

  2. Uygulamanın cihazda arka planda çalıştığından emin olun.

  3. Firebase konsolunda Mesajlaşma sayfasını açın.

  4. Bu ilk mesajınızsa İlk kampanyanızı oluşturun'u seçin.

    1. Firebase Notification mesajları'nı ve Oluştur'u seçin.
  5. Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.

  6. Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.

  7. Sağ bölmede Test mesajı gönder'i seçin.

  8. Add an FCM registration token (FCM kayıt jetonu ekle) etiketli alana, bu kılavuzun önceki bir bölümünde aldığınız kayıt jetonunu girin.

  9. Test et'i seçin.

Test'i seçtikten sonra, hedef istemci cihaz (uygulama arka planda çalışırken) bildirimi almalıdır.

Uygulamanıza mesaj teslimiyle ilgili analizler için FCM raporlama kontrol paneline bakın. Bu kontrol paneli, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını kaydeder. Ayrıca Android uygulamaları için "gösterim" (kullanıcılar tarafından görülen bildirimler) verilerini de içerir.

Sonraki adımlar

Ön planda çalışan uygulamalara mesaj gönderme

Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön plana çıkarılan uygulamalara göndermeye başlamak için Android Uygulamasında Mesaj Alma başlıklı makaleyi inceleyin.

Bildirim mesajlarının ötesine geçme

Bildirim mesajlarının ötesine geçip uygulamanıza başka ve daha gelişmiş davranışlar eklemek için aşağıdaki kaynaklara göz atın: