FCM'yi kullanmaya başlamak için en basit kullanım senaryosunu oluşturun: uygulama cihazın arka planındayken Bildirimler oluşturucusundan bir geliştirme cihazına bir test bildirimi mesajı göndermek. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmaya yönelik tüm adımları listeler; FCM için bir Android istemci uygulaması kurduysanız zaten tamamlamış olduğunuz adımları kapsayabilir.
SDK'yı kurma
Bu bölüm, uygulamanız için diğer Firebase özelliklerini zaten etkinleştirdiyseniz tamamlamış olabileceğiniz görevleri kapsar.
Sen başlamadan önce
Android Studio'yu yükleyin veya en son sürümüne güncelleyin.
Projenizin şu gereksinimleri karşıladığından emin olun:
- API düzeyi 19 (KitKat) veya üstünü hedefler
- Android 4.4 veya üstünü kullanır
- Aşağıdaki sürüm gereksinimlerini karşılamayı içeren Jetpack (AndroidX) kullanır:
-
com.android.tools.build:gradle
v7.3.0 veya üzeri -
compileSdkVersion
28 veya üzeri
-
Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir emülatör kullanın.
Google Play hizmetlerine bağımlı olan Firebase SDK'larının, cihazda veya emülatörde Google Play hizmetlerinin yüklü olmasını gerektirdiğini unutmayın.Google hesabınızı kullanarak Firebase'de oturum açın .
Henüz 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şturma
Firebase'i Android uygulamanıza ekleyebilmeniz için öncelikle Android uygulamanıza bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Uygulamanızı Firebase'e kaydedin
Firebase'i Android uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetmeye genellikle uygulamanızı projenize "eklemek" denir.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki Android simgesine (
) veya Uygulama ekle öğesine tıklayın.Android paket adı alanına uygulamanızın paket adını girin.
Paket adı, uygulamanızı cihazda ve Google Play Store'da benzersiz bir şekilde tanımlar.
Paket adına genellikle uygulama kimliği denir.
Uygulamanızın paket adını modülünüzde (uygulama düzeyi) Gradle dosyasında bulun; genellikle
app/build.gradle
(örnek paket adı:com.yourcompany.yourproject
).Paket adı değerinin büyük/küçük harfe duyarlı olduğunu ve Firebase projenize kaydedildikten sonra bu Firebase Android uygulaması için değiştirilemeyeceğini unutmayın.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata Ayıklama imzalama sertifikası SHA-1 .
Uygulama takma adı : Firebase konsolunda yalnızca sizin görebileceğiniz dahili, kullanışlı bir tanımlayıcı
İmzalama sertifikasında hata ayıklama SHA-1 : Firebase Authentication ( Google Oturum Açma veya telefon numarasıyla oturum açma kullanılırken) ve Firebase Dynamic Links için bir SHA-1 karma değeri gereklidir.
Uygulamayı kaydet'i tıklayın.
Firebase yapılandırma dosyası ekleyin
Firebase Android yapılandırma dosyasını (
) indirin ve ardından uygulamanıza ekleyin:google-services.json Firebase Android yapılandırma dosyanızı edinmek için Google-services.json'u İndir'i tıklayın.
Yapılandırma dosyanızı uygulamanızın modül (uygulama düzeyi) kök dizinine taşıyın.
Firebase yapılandırma dosyası, projeniz için benzersiz ancak gizli olmayan tanımlayıcılar içerir. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman tekrar indirebilirsiniz.
Yapılandırma dosyası adına
(2)
gibi ek karakterler eklenmediğinden emin olun.
yapılandırma dosyanızdaki değerlerin Firebase SDK'ları tarafından erişilebilir olmasını sağlamak için Google hizmetleri Gradle eklentisine (google-services.json google-services
) ihtiyacınız vardır.Kök düzeyindeki (proje düzeyi) 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.0" 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.0' apply false }
Modülünüzün (uygulama düzeyi) Gradle dosyasına (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' // ... }
Firebase SDK'larını uygulamanıza ekleyin
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Firebase Cloud bağımlılığını ekleyin Android için mesajlaşma kütüphanesi. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.Firebase Cloud Messaging ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.6.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'yi kullandığınızda uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).(Alternatif) BoM'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin
Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı 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ğlayan BoM'yi kullanmanızı önemle tavsiye ettiğimizi unutmayın.
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:23.3.1") implementation("com.google.firebase:firebase-analytics:21.5.0") }
Android projenizi Gradle dosyalarıyla senkronize edin.
Android Gradle eklentisi (AGP) v4.2 veya önceki sürümünü kullanan Gradle derlemelerinin Java 8 desteğini etkinleştirmesi gerekir. Aksi takdirde, bu Android projeleri Firebase SDK'sı eklenirken derleme hatasıyla karşılaşılır.
Bu derleme hatasını düzeltmek için iki seçenekten birini takip edebilirsiniz:
- Hata mesajında listelenen
compileOptions
uygulama düzeyindekibuild.gradle.kts
veyabuild.gradle
dosyanıza ekleyin. - Android projeniz için
minSdk
26 veya üstüne yükseltin.
Bu SSS bölümünde bu derleme hatası hakkında daha fazla bilgi edinin.
- Hata mesajında listelenen
Kayıt belirtecine erişme
Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Bu öğreticiyi tamamlamak için belirteci Bildirimler konsolundaki bir alana girmeniz gerekeceğinden, belirteci aldıktan sonra kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.
Uygulamanızın ilk başlangıcında FCM SDK, istemci uygulaması örneği için bir kayıt belirteci oluşturur. Tek cihazları hedeflemek veya cihaz grupları oluşturmak istiyorsanız FirebaseMessagingService
genişleterek ve onNewToken
geçersiz kılarak bu belirtece erişmeniz gerekir.
Bu bölümde belirtecin nasıl alınacağı ve belirteçte yapılan değişikliklerin nasıl izleneceği açıklanmaktadır. Belirteç ilk başlatmanın ardından döndürülebileceğinden, en son güncellenen kayıt belirtecini 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 alın
Geçerli belirteci almanız gerektiğinde FirebaseMessaging.getInstance().getToken()
ç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(); } });
Belirteç oluşturmayı izleyin
onNewToken
geri çağrısı, yeni bir belirteç oluşturulduğunda tetiklenir.
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); }
Tokenı aldıktan sonra uygulama sunucunuza gönderebilir ve tercih ettiğiniz yöntemi kullanarak saklayabilirsiniz.
Test bildirim mesajı gönder
Uygulamayı hedef cihaza yükleyin ve çalıştırın. Apple cihazlarda uzaktan bildirim alma izni talebini kabul etmeniz gerekir.
Uygulamanın cihazın arka planında olduğundan emin olun.
Firebase konsolunda Mesajlaşma sayfasını açın.
Bu ilk mesajınızsa İlk kampanyanızı oluşturun ' u seçin.
- Firebase Bildirim mesajları'nı ve Oluştur'u seçin.
Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.
Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.
Sağ bölmeden Test mesajı gönder'i seçin.
FCM kayıt jetonu ekle etiketli alana, bu kılavuzun önceki bölümünde edindiğiniz kayıt jetonunu girin.
Test'i seçin.
Test öğesini seçtikten sonra, hedeflenen istemci cihazın (uygulama arka plandayken) bildirimi alması gerekir.
Uygulamanıza mesaj teslimine ilişkin bilgi edinmek için Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını ve Android uygulamalarına ilişkin "gösterimler" (kullanıcılar tarafından görülen bildirimler) verilerini kaydeden FCM raporlama kontrol paneline bakın.
Sonraki adımlar
Ön plandaki uygulamalara mesaj gönderin
Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön plandaki uygulamalara göndermeye başlamak için Android Uygulamasında Mesaj Alma konusuna bakın.
Bildirim mesajlarının ötesine geçin
Bildirim mesajlarının ötesine geçmek ve uygulamanıza daha gelişmiş başka davranışlar eklemek için bkz.: