Flutter'da Firebase Cloud Messaging istemci uygulaması kurma

Flutter'da FCM istemcisi ayarlamak için aşağıdaki adımları uygulayın.

Platforma özel kurulum ve gereksinimler

Gerekli adımların bazıları, hedeflediğiniz platforma göre değişir.

iOS ve üzeri

Xcode'da uygulama özelliklerini etkinleştirme

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

  1. Xcode proje çalışma alanınızı (ios/Runner.xcworkspace) açın.
  2. Push bildirimlerini etkinleştirin.
  3. Arka planda getirme ve Uzaktan bildirimler'i etkinleştirin. arka plan yürütme modları hakkında daha fazla bilgi edinin.

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

FCM'yi kullanmadan önce APNs sertifikanızı Firebase'e yükleyin. Şunu yapmazsanız: bir APNs sertifikasına sahipseniz, Apple Geliştirici Üye Merkezi.

  1. Firebase konsolunda projenizin içindeki dişli simgesini ve ardından Proje Ayarları'nı tıklayın ve Cloud Messaging sekmesini seçin.
  2. Sertifikanız için Sertifika Yükle'yi seçin. üretim sertifikanızı veya her ikisini birden sağlamanız gerekir. En az biri gereklidir.
  3. Her sertifika için .p12 dosyasını seçin ve herhangi. Bu sertifikanın paket kimliğinin, şu paketin kimliği ile eşleştiğinden emin olun: en iyi şekilde yararlanabilirsiniz. Kaydet'i seçin.

Yöntem değiştirme

FCM Flutter eklentisini Apple cihazlarda kullanmak için yöntemi devre dışı bırakmamalısınız. hızlandırıyor. Kaydırma zorunludur; bunlar olmadan, FCM jeton işleme düzgün şekilde çalışmaz.

Android

Google Play hizmetleri

FCM istemcileri, Android 4.4 veya sonraki sürümleri çalıştıran ve aynı zamanda Google Yüklü Play hizmetleri veya Google API'leri içeren Android 4.4 çalıştıran bir emülatör. Android uygulamalarınızı Google Play üzerinden dağıtmanın sınırlı olmadığını unutmayın Mağaza.

Play Hizmetleri SDK'sını kullanan uygulamalar, cihazda her zaman Google Play hizmetlerine erişmeden önce uyumlu Google Play hizmetleri APK'sı özellikleri. Bunu iki yerde yapmanız önerilir: ana etkinliğin onCreate() yöntemini ve onResume() yöntemini kullanır. Giriş saati: onCreate() Uygulamanın başarılı bir kontrol olmadan kullanılamamasını sağlar. Giriş onResume(), kullanıcının çalışan uygulamaya geri dönmesi geri düğmesi gibi başka yöntemlerle de kontrol yapılır.

Cihazda Google Play Hizmetleri'nin uyumlu bir sürümü yoksa uygulaması, kullanıcıların Play Store'dan Google Play hizmetlerini indirmesine olanak tanımak için GoogleApiAvailability.makeGooglePlayServicesAvailable() numaralı telefonu arayabilir.

Web

Web Kimlik Bilgilerini FCM ile yapılandırma

FCM Web arayüzü, "Gönüllü Uygulama Sunucusu" adı verilen Web kimlik bilgilerini kullanır Tanımlama," veya "VAPID" anahtarları, desteklenen web'e gönderme isteklerini yetkilendirmek için push hizmetleri. Uygulamanızı push bildirimlerine abone olmak için şunları yapmanız gerekir: bir anahtar çiftini Firebase projenizle ilişkilendirin. İsterseniz yeni anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi Firebase konsolu üzerinden içe aktarabilirsiniz.

Yeni bir anahtar çifti oluştur
  1. Cloud Messaging'i açın Firebase konsolunun Ayarlar bölmesindeki sekmeye gidip aşağı kaydırarak Web yapılandırması bölümüne bakın.

  2. Web Push sertifikaları sekmesinde Anahtar Çifti Oluştur'u tıklayın. İlgili içeriği oluşturmak için kullanılan konsolunda, anahtar çiftinin oluşturulduğuna dair bir bildirim ve ortak anahtar dizesi ve eklenme tarihi.

Mevcut bir anahtar çiftini içe aktarma

Web uygulamanızla halihazırda kullandığınız bir anahtar çiftiniz varsa FCM'ye aktarabilir ve böylece mevcut web uygulamanıza erişebilirsiniz örnekler. Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişim. Mevcut herkese açık verilerinizi içe aktarın ve base64 URL güvenli kodlanmış biçimde özel anahtar:

  1. Cloud Messaging'i açın Firebase konsolunun Ayarlar bölmesindeki sekmeye gidip aşağı kaydırarak Web yapılandırması bölümüne bakın.

  2. Web Push sertifikaları sekmesinde "İçe aktar" bağlantı metnini bulup seçin mevcut bir anahtar çifti" olarak değiştirin.

  3. Bir anahtar çiftini içe aktarın iletişim kutusunda, ortak ve özel anahtarlarınızı ilgili alanları doldurun ve İçe Aktar'ı tıklayın. Konsolda ortak anahtar dizesi ve eklenme tarihi.

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

FCM eklentisini yükleyin

  1. Flutter için Firebase eklentilerini yükleme ve başlatma (ve bunu yapmadıysanız).

  2. Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak girin:

    flutter pub add firebase_messaging
    
  3. Ardından Flutter uygulamanızı yeniden derleyin:

    flutter run
    

Kayıt jetonuna erişme

Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonu. Çünkü jetonu alan adındaki bir alana girmeniz Bu eğiticiyi tamamlamak için Notifications Console'a gidin. Jetonu kopyaladığınızdan emin olun veya güvenli bir şekilde saklamanızı öneririz.

Bir uygulama örneği için geçerli kayıt jetonunu almak için getToken() Bildirim izni verilmediyse bu yöntem kullanıcıdan bildirim izni isteyebilir. Aksi takdirde, değerini bir hata nedeniyle reddeder.

// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);

// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
 // APNS token is available, make FCM plugin API requests...
}

Web platformlarında, VAPID ortak anahtarınızı getToken() kullanıcısına iletin:

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

Jeton güncellendiğinde bildirim almak için onTokenRefresh abonesi olun akış:

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

FCM kayıt jetonu oluşturulduğunda kitaplık, Firebase'e aktarmanızı sağlar. E-posta gönderilmesini jeton otomatik oluşturma, derleme sırasında otomatik başlatmayı devre dışı bırakma.

iOS

iOS'te, Info.plist öğenize meta veri değeri ekleyin:

FirebaseMessagingAutoInitEnabled = NO

Android

Android'de, Analytics toplamayı ve FCM otomatik başlatma özelliğini devre dışı bırakın ( AndroidManifest.xml içine meta veri değerlerini ekleyerek her ikisini de devre dışı bırakın:

<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şlatmasını yeniden etkinleştir

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

await FirebaseMessaging.instance.setAutoInitEnabled(true);

Bu değer, ayarlandıktan sonra uygulamanın yeniden başlatılmasında da aynı kalır.

Sonraki adımlar

İstemci uygulaması kurulduktan sonra satışa dönük içeren Bildirim oluşturucu. Arka plandaki uygulamaya test mesajı gönderme başlıklı makaleyi inceleyin.

Uygulamanıza başka, daha gelişmiş davranışlar eklemek için sunucu uygulaması.

Ardından uygulama istemcinizde: