Arka plana alınmış bir uygulamaya test mesajı gönderme

FCM'yi kullanmaya başlamak için en basit kullanım alanını oluşturun: uygulama cihazda arka plandayken Bildirim oluşturucu'dan geliştirme cihazına bir test bildirim mesajı gönderme. Bu sayfada, kurulumdan doğrulamaya kadar bunu başarmaya yönelik tüm adımlar listelenmektedir. FCM için bir Android istemci uygulaması ayarladıysanız hâlihazırda tamamladığınız adımlar burada yer alabilir.

SDK'yı ayarlama

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

Başlamadan önce

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

  • Projenizin şu gereklilikleri karşıladığından emin olun (bazı ürünlerin daha katı gereksinimler olabileceğini unutmayın):

    • API düzeyi 19 (KitKat) veya üstünü hedefler
    • Android 4.4 veya sonraki bir sürümü çalıştıran
    • Aşağıdaki sürüm gereksinimlerinin karşılanmasını da içeren Jetpack (AndroidX) uygulamasını kullanmalıdır:
      • com.android.tools.build:gradle 7.3.0 veya sonraki sürümler
      • compileSdkVersion 28 veya üzeri
  • Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya emülatör kullanın.
    Google Play hizmetlerine bağımlılığı olan Firebase SDK'larının, cihaz veya emülatörde Google Play Hizmetleri'nin yüklü olmasını gerektirdiğini unutmayın.

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

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

Firebase projesi oluşturun

Firebase'i Android uygulamanıza ekleyebilmek için önce 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 sayfasını ziyaret edin.

Uygulamanızı Firebase'e kaydetme

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

  1. Firebase konsoluna gidin.

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

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

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

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

Firebase yapılandırma dosyası ekleyin

  1. Firebase Android yapılandırma dosyasını (google-services.json) indirip uygulamanıza ekleyin:

    1. Firebase Android yapılandırma dosyanızı almak için google-services.json dosyasını indir'i tıklayın.

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

  2. google-services.json yapılandırma dosyanızdaki değerlere Firebase SDK'ları tarafından erişilebilmesini sağlamak için Google hizmetleri Gradle eklentisine (google-services) ihtiyacınız vardır.

    1. Kök düzeyindeki (proje düzeyindeki) Gradle dosyanıza (<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.1" 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.1' apply false
      }
      
    2. Modül (uygulama düzeyi) Gradle dosyanıza (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ı ekleyin

  1. Modül (uygulama düzeyi) Gradle dosyanıza (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'u kullanmanızı öneririz.

    Firebase Cloud Messaging ile optimum bir deneyim için Firebase projenizde Google Analytics'i 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:33.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 her zaman uyumlu sürümlerini kullanır.

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

    Firebase BoM'yi kullanmamayı seçerseniz 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 tüm sürümlerin uyumlu olmasını sağlamak için BoM kullanmanızı kesinlikle öneririz.

    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:24.0.0")
        implementation("com.google.firebase:firebase-analytics:22.0.0")
    }
    
    Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Ekim 2023'ten (Firebase BoM 32.5.0) itibaren, hem Kotlin hem de Java geliştiricileri ana kitaplık modülüne başvurabilir. (Ayrıntılar için Bu girişimle ilgili sık sorulan sorular bölümüne göz atın).

  2. Android projenizi Gradle dosyalarıyla senkronize edin.

Kayıt jetonuna erişme

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

Uygulamanızın ilk başlatılmasında FCM SDK'sı, 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şletip onNewToken değerini geçersiz kılarak bu jetona erişmeniz gerekir.

Bu bölümde jetonun nasıl alınacağı ve jeton değişikliklerinin nasıl izleneceği açıklanmaktadır. Jeton ilk başlatma sonrasında döndürülebileceği için en son güncellenmiş kayıt jetonunu almanız önemle tavsiye edilir.

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

  • Uygulama yeni bir cihaza geri yüklenir
  • Kullanıcı uygulamayı kaldırır/yeniden yükler
  • Kullanıcı, uygulama verilerini temizler.

Geçerli kayıt jetonunu alma

Geçerli jetonu almanız gerektiğinde FirebaseMessaging.getInstance().getToken() komutunu çağırın:

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

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

Yeni bir jeton oluşturulduğunda onNewToken geri çağırma etkinleşir.

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

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

Aldığınız jetonu uygulama sunucunuza gönderebilir ve tercih ettiğiniz yöntemi kullanarak saklayabilirsiniz.

Test bildirimi mesajı gönder

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

  2. Uygulamanın cihazda arka planda olduğundan 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 Bildirim 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ölmeden Test iletisi gönder'i seçin.

  8. FCM kayıt jetonu ekle alanına, bu kılavuzun önceki bir bölümünde edindiğiniz kayıt jetonunu girin.

  9. Test et'i seçin.

Test et'i seçmenizin ardından, hedeflenen istemci cihazın (uygulama arka plandayken) bildirimi alması gerekir.

Uygulamanıza mesaj teslimiyle ilgili ayrıntılı bilgi için, Android uygulamaları için "gösterimler" (kullanıcıların gördüğü bildirimler) verileriyle birlikte Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını kaydeden FCM raporlama kontrol panelini inceleyin.

Sonraki adımlar

Ön plana alınan uygulamalara mesaj gönderme

Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön planda çalışan uygulamalara ileti göndermeye başlamak için Android Uygulamasında Mesaj Alma bölümüne bakın.

Bildirim mesajlarının ötesine geçin

Bildirim mesajlarının ötesine geçip uygulamanıza daha gelişmiş davranışlar eklemek için aşağıdaki makaleleri inceleyin: