Flutter'da Firebase Cloud Messaging istemci uygulaması kurun

Flutter'da bir FCM istemcisi kurmak için bu adımları izleyin.

Platforma özgü kurulum ve gereksinimler

Gerekli adımlardan bazıları, hedeflediğiniz platforma bağlıdır.

iOS+

Xcode'da uygulama özelliklerini etkinleştirin

Uygulamanızın mesaj almaya başlayabilmesi için Xcode projenizde push bildirimlerini ve arka plan modlarını etkinleştirmeniz gerekir.

  1. Xcode proje çalışma alanınızı açın ( ios/Runner.xcworkspace ).
  2. Push bildirimlerini etkinleştirin .
  3. Arka planda getirme ve Uzak bildirimler arka planda yürütme modlarını etkinleştirin.

APNs kimlik doğrulama anahtarınızı yükleyin

FCM'yi kullanmadan önce APNs sertifikanızı Firebase'e yükleyin. Halihazırda bir APNs sertifikanız yoksa, Apple Developer Üye Merkezi'nde bir tane oluşturun.

  1. Firebase konsolundaki projenizin içinde, dişli çark simgesini seçin, Proje Ayarları'nı seçin ve ardından Bulut Mesajlaşma sekmesini seçin.
  2. Geliştirme sertifikanız, üretim sertifikanız veya her ikisi için Sertifika Yükle düğmesini seçin. En az bir tane gereklidir.
  3. Her sertifika için .p12 dosyasını seçin ve varsa şifreyi girin. Bu sertifikanın paket kimliğinin uygulamanızın paket kimliğiyle eşleştiğinden emin olun. Kaydet'i seçin.

yöntem swizzling

FCM Flutter eklentisini Apple cihazlarda kullanmak için metod swizzling'i devre dışı bırakmamalısınız. Swizzling gereklidir ve bu olmadan, FCM jeton işleme gibi temel Firebase özellikleri düzgün çalışmaz.

Android

Google Play hizmetleri

FCM istemcileri, Google Play hizmetlerinin de yüklü olduğu Android 4.4 veya üstünü çalıştıran cihazlar veya Google API'leri ile Android 4.4 çalıştıran bir öykünücü gerektirir. Android uygulamalarınızı Google Play Store aracılığıyla dağıtmakla sınırlı olmadığınızı unutmayın.

Play Hizmetleri SDK'sına dayanan uygulamalar, Google Play hizmetleri özelliklerine erişmeden önce her zaman cihazda uyumlu bir Google Play hizmetleri APK'sı olup olmadığını kontrol etmelidir. Bunu iki yerde yapmanız önerilir: ana etkinliğin onCreate() yönteminde ve onResume() yönteminde. onCreate() içindeki kontrol, uygulamanın başarılı bir kontrol olmadan kullanılamayacağını garanti eder. onResume() deki check-in, kullanıcı çalışan uygulamaya geri düğmesi gibi başka yollarla dönerse, kontrolün yine de gerçekleştirilmesini sağlar.

Cihazda Google Play hizmetlerinin uyumlu bir sürümü yoksa uygulamanız, kullanıcıların Play Store'dan Google Play hizmetlerini indirmesine izin vermek için GoogleApiAvailability.makeGooglePlayServicesAvailable() ı çağırabilir.

Web Kimlik Bilgilerini FCM ile Yapılandırma

FCM Web arabirimi, desteklenen web push hizmetlerine istek gönderme yetkisi vermek için "Gönüllü Uygulama Sunucusu Kimliği" veya "VAPID" anahtarları adı verilen Web kimlik bilgilerini kullanır. Uygulamanızı push bildirimlerine abone olmak için Firebase projenizle bir çift anahtar ilişkilendirmeniz gerekir. Firebase konsolu aracılığıyla yeni bir anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi içe aktarabilirsiniz.

Yeni bir anahtar çifti oluştur
  1. Firebase konsolu Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.

  2. Web Push sertifikaları sekmesinde Anahtar Çifti Oluştur seçeneğine tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim görüntüler ve ortak anahtar dizisini ve eklenme tarihini görüntüler.

Mevcut bir anahtar çiftini içe aktarın

Halihazırda web uygulamanızla kullanmakta olduğunuz mevcut bir anahtar çiftiniz varsa, FCM API'leri aracılığıyla mevcut web uygulaması örneklerinize ulaşabilmek için bunu FCM'ye aktarabilirsiniz. Anahtarları içe aktarmak için Firebase projesine sahip seviyesinde erişiminiz olmalıdır. Mevcut genel ve özel anahtarınızı base64 URL güvenli kodlanmış biçimde içe aktarın:

  1. Firebase konsolu Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.

  2. Web Push sertifikaları sekmesinde, "mevcut bir anahtar çiftini içe aktar" bağlantı metnini bulun ve seçin.

  3. Bir anahtar çiftini içe aktar iletişim kutusunda, ortak ve özel anahtarlarınızı ilgili alanlara girin ve İçe Aktar seçeneğine tıklayın. Konsol, genel anahtar dizesini ve eklenen tarihi görüntüler.

Anahtarların biçimi ve bunların nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Uygulama sunucusu anahtarları .

FCM eklentisini kurun

  1. Henüz yapmadıysanız, Flutter için Firebase eklentilerini kurun ve başlatın .

  2. Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_messaging
    
  3. Tamamlandığında, Flutter uygulamanızı yeniden oluşturun:

    flutter run
    

Kayıt belirtecine erişin

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, aldıktan sonra belirteci kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.

Bir uygulama örneği için geçerli kayıt belirtecini almak için getToken() öğesini çağırın. Bildirim izni verilmemişse, bu yöntem kullanıcıdan bildirim izinlerini ister. Aksi takdirde, bir hata nedeniyle bir belirteç döndürür veya geleceği reddeder.

final fcmToken = await FirebaseMessaging.instance.getToken();

Web platformlarında, VAPID ortak anahtarınızı getToken() öğesine iletin:

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

Belirteç her güncellendiğinde bilgilendirilmek için onTokenRefresh akışına abone olun:

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

Otomatik başlatmayı engelle

Bir FCM kayıt belirteci oluşturulduğunda kitaplık, tanımlayıcıyı ve yapılandırma verilerini Firebase'e yükler. Belirteç otomatik oluşturmayı engellemeyi tercih ederseniz, oluşturma zamanında otomatik başlatmayı devre dışı bırakın.

iOS

iOS'ta Info.plist bir meta veri değeri ekleyin:

FirebaseMessagingAutoInitEnabled = NO

Android

Android'de, bu meta veri değerlerini AndroidManifest.xml dosyanıza ekleyerek Analytics toplamayı ve FCM otomatik başlatmayı devre dışı bırakın (her ikisini de devre dışı bırakmalısınız):

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

Çalışma zamanında FCM otomatik başlatmayı yeniden etkinleştirin

Belirli bir uygulama örneği için otomatik başlatmayı etkinleştirmek üzere setAutoInitEnabled() öğesini çağırın:

await FirebaseMessaging.instance.setAutoInitEnabled(true);

Bu değer, ayarlandıktan sonra uygulama yeniden başlatmalarında devam eder.

Sonraki adımlar

İstemci uygulaması ayarlandıktan sonra, Bildirim oluşturucu ile aşağı akış mesajları göndermeye hazırsınız. Bkz. Arka planda çalışan bir uygulamaya test mesajı gönderme .

Uygulamanıza başka, daha gelişmiş davranışlar eklemek için bir sunucu uygulamasına ihtiyacınız olacak.

Ardından, uygulama istemcinizde: