Flutter'da bir Firebase Bulut Mesajlaşma istemci uygulaması kurun

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

Platforma özel kurulum ve gereksinimler

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

iOS+

Xcode'da uygulama özelliklerini etkinleştirin

Uygulamanız mesaj almaya başlamadan önce, Xcode projenizde push bildirimlerini ve arka plan modlarını etkinleştirmelisiniz.

  1. Xcode proje çalışma alanınızı açın ( ios/Runner.xcworkspace ).
  2. Anında iletme bildirimlerini etkinleştirin .
  3. Arka Plan getirme ve Uzak bildirimler arka plan 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 konsolunda projenizin içinde dişli simgesini seçin, Project Settings öğesini seçin ve ardından Cloud Messaging 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 biri gereklidir.
  3. Her sertifika için .p12 dosyasını seçin ve varsa parolayı 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

Apple cihazlarında FCM Flutter eklentisini kullanmak için yöntem swizzling'i devre dışı bırakmamalısınız. Swizzling gereklidir ve bu olmadan FCM belirteci işleme gibi temel Firebase özellikleri düzgün çalışmaz.

Android

Google Play hizmetleri

FCM istemcileri, Google Play hizmetlerinin yüklü olduğu Android 4.4 veya sonraki sürümleri çalıştıran cihazlara veya Google API'leri ile Android 4.4 çalıştıran bir öykünücüye ihtiyaç duyar. Android uygulamalarınızı Google Play Store üzerinden 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() 'deki 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 hala gerçekleştirilmesini sağlar.

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

FCM ile Web Kimlik Bilgilerini Yapılandırma

FCM Web arabirimi, desteklenen web push hizmetlerine gönderme isteklerini yetkilendirmek için "Gönüllü Uygulama Sunucusu Kimliği" veya "VAPID" anahtarları olarak adlandırılan 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şturun
  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 öğesine tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim görüntüler ve ortak anahtar dizesini ve eklenme tarihini görüntüler.

Mevcut bir anahtar çiftini içe aktarın

Web uygulamanızla halihazırda 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 düzeyinde 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, ilgili alanlara genel ve özel anahtarlarınızı girin ve İçe Aktar'ı tıklayın. Konsol, ortak anahtar dizesini ve eklenme tarihini 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 yükleyin

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

  2. Flutter projenizin kökünden eklentiyi kurmak için 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ğinin geçerli kayıt belirtecini almak için getToken() çağırın. Bildirim izni verilmemişse, bu yöntem kullanıcıdan bildirim izinleri isteyecektir. Aksi takdirde, bir jeton döndürür veya bir hata nedeniyle geleceği reddeder.

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

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

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

Belirteç her güncellendiğinde haberdar olmak 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, derleme 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, AndroidManifest.xml şu meta veri değerlerini ekleyerek Analytics koleksiyonunu 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ştir

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

await FirebaseMessaging.instance.setAutoInitEnabled(true);

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

Sonraki adımlar

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

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

Ardından, uygulama istemcinizde: