Firebase Cloud Messaging (FCM), çok çeşitli mesajlaşma seçenekleri sunar ve olanaklar. Bu sayfadaki bilgiler şunları yapma amaçlıdır: farklı FCM mesajı türlerini ve ne tür mesajlar gönderdiğinizi neler yapabileceğine bakacağız.
Mesaj türleri
FCM ile istemcilere iki tür ileti gönderebilirsiniz:
- Bildirim mesajları (bazen "mesajları göster" olarak da düşünülür.) Bunlar, FCM SDK'sı tarafından otomatik olarak işlenir.
- İstemci uygulaması tarafından işlenen veri mesajları.
Bildirim mesajları, kullanıcıların görebildiği önceden tanımlanmış bir dizi anahtar içerir. Buna karşılık veri mesajları, yalnızca kullanıcı tanımlı özel anahtar/değer çiftinizi içerir. çiftler. Bildirim mesajları isteğe bağlı olarak, veri yükü. Her iki mesaj türü için maksimum yük 4.096 bayttır. Aşağıdakiler dışında: Firebase konsolundan mesaj göndererek (1000 karakteri zorunlu kılınır) limit.
Senaryoyu kullan | Nasıl gönderilir? | |
---|---|---|
Bildirim mesajı | FCM SDK'sı, mesajı son kullanıcı cihazlarına gösterir arka planda çalışırken istemci uygulaması adına gönderilir. Uygulama ön planda çalışıyorsa bildirim alındığında uygulamanın kodu davranışı belirler. Bildirim mesajlarında, kullanıcıların görebildiği önceden tanımlanmış anahtarlar ve Özel anahtar/değer çiftlerinin isteğe bağlı veri yükü. |
|
Veri mesajı | Veri mesajlarını işlemekten istemci uygulaması sorumludur. Veri mesajları yalnızca ayrılmış anahtar adları olmayan özel anahtar/değer çiftlerine sahiptir (aşağıya bakın). | gibi güvenilir bir ortamda
Cloud Functions
veya uygulama sunucunuzda
Admin SDK veya
FCM Sunucu Protokolleri. Gönderme isteğinde, data özelliğini ayarlayın.
tuşuna basın.
|
FCM SDK'sının görüntülemeyi işlemesini istediğinizde bildirim mesajlarını kullanın Uygulamanız arka planda çalışırken otomatik olarak bir bildirim alırsınız. Sizinle ilişkili verileri işlemek istediğinizde veri mesajlarını kullanın. kodu oluşturabilirsiniz.
FCM, isteğe bağlı veriler içeren bir bildirim mesajı gönderebilir yük. Bu tür durumlarda, bildirimi görüntüleme işlemi FCM tarafından işlenir. ve istemci uygulaması veri yükünü üstlenir.
Bildirim mesajları
Test veya pazarlama ve kullanıcı yeniden etkileşimi için gönderebileceğiniz bildirim mesajlarını Firebase konsolunu kullanarak bildirin. Firebase konsolu, analiz tabanlı özellikler sunar. A/B Testi: ve pazarlama mesajlarını iyileştirir.
Admin SDK veya
FCM protokolleri için notification
anahtarını
kullanıcı tarafından görülebilen reklam öğeleri için önceden tanımlanmış gerekli anahtar/değer
bildirim mesajının bir kısmını oluşturur. Örneğin, burada JSON biçiminde bir
bildirim mesajı gönderebilirsiniz. Kullanıcılar belirli bir süre içinde
başlığı "Portekiz - Danimarka" ve metnin
"mükemmel eşleşme!" cihazda:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Portugal vs. Denmark", "body":"great match!" } } }
Uygulama gerçekleştirildiğinde bildirim mesajları bildirim tepsisine teslim edilir. arka planda. Ön plandaki uygulamalarda mesajlar, fonksiyonudur.
HTTP v1 Protokolü bildirim nesnesini inceleyin. referans belgeler oluşturma bildirimi için kullanılabilen önceden tanımlanmış anahtarların tam listesi için mesaj.
Veri mesajları
Özel anahtar/değer çiftlerinizle uygun anahtarı istemci uygulamaya veri yükü gönderebilirsiniz.
Örneğin burada
Yukarıdakiyle aynı IM uygulamasında JSON biçimli mesaj,
Burada bilgiler, ortak data
anahtarında bulunur ve
istemci uygulamanın içeriği yorumlaması beklenir:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" } } }
Yukarıdaki örnekte, üst düzey veya ortak data
alanının kullanımı gösterilmektedir.
mesajı alan tüm platformlardaki müşteriler tarafından yorumlanır.
İstemci uygulaması her platformda veri yükünü alır
kullanabilirsiniz.
Veri mesajları için şifreleme
Android Taşıma Katmanı (FCM mimarisine bakın) noktadan noktaya şifreleme kullanılır. Size Bu nedenle, veri mesajlarına uçtan uca şifreleme eklemeye karar verebilirsiniz. FCM uçtan uca bir çözüm sunmuyor. Ancak, bu gibi harici çözümlerin de Kilometre veya DTLS
İsteğe bağlı veri yükü içeren bildirim mesajları
Hem programatik olarak hem de Firebase konsolu üzerinden bildirim gönderebilirsiniz İsteğe bağlı özel anahtar/değer çiftleri yükü içeren mesajlar İçinde Bildirim oluşturucu olarak, yukarıdaki Özel veri alanlarını Gelişmiş seçenekler.
Hem bildirim hem de veri içeren mesajlar alındığında uygulama davranışı uygulamanın arka planda mı yoksa arka planda mı olduğuna esasen, işlem yapılırken o zamanda etkin olup olmadığı makbuz.
- arka planda işlem yapıldığında, uygulamalar bildirim yükünü bildirim tepsisini açın ve veri yükünü yalnızca kullanıcı bildirime dokunduğunda.
- Ön planda çalışırken uygulamanız bir mesaj alır nesne bulmanız gerekir.
Burada, hem
notification
tuşu ve data
anahtarı:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Portugal vs. Denmark", "body":"great match!" }, "data" : { "Nick" : "Mario", "Room" : "PortugalVSDenmark" } } }
Mesajları platformlar arasında özelleştirme
Hem Firebase Admin SDK hem de FCM v1 HTTP protokolü mesajınıza izin verir.
tüm alanları otomatik olarak ayarlayıp
message
nesnesini tanımlayın. Bunlardan bazıları:
- tüm uygulama örnekleri tarafından yorumlanacak şekilde mesajı alabilir.
- platforma özgü alan grupları (ör.
AndroidConfig
veWebpushConfig
), yalnızca belirtilen platformda çalışan uygulama örnekleri tarafından yorumlanır.
Platforma özel engellemeler, mesajlarınızı özelleştirmek için size bunların doğru şekilde ele alınmasını sağlamak için farklı platformlardan destek alabilirsiniz. İlgili içeriği oluşturmak için kullanılan FCM arka ucu, belirtilen tüm parametreleri dikkate alır ve mesajı görebilirsiniz.
Ortak alanlar ne zaman kullanılır?
Aşağıdaki durumlarda ortak alanları kullanın:
- Tüm platformlarda (Apple, Android ve web) uygulama örneklerini hedefleme
- Konulara mesaj gönderme
Platformdan bağımsız olarak tüm uygulama örnekleri aşağıdaki yaygın alanlar:
Platforma özel alanlar ne zaman kullanılır?
Aşağıdakileri yapmak istediğinizde platforma özel alanları kullanın:
- Alanları yalnızca belirli platformlara gönder
- Ortak alanlara ek olarak platforma özel alanları gönderin
Değerleri yalnızca belirli platformlara göndermek istediğinizde aşağıdakini kullanmayın: ortak alanlar; kullanın. Örneğin, bir bildirim göndermek için yalnızca Apple platformları ve web için değil, Android için değil, iki ayrı biri Apple, diğeri web için.
Belirli özel amaçlı iletiler gönderirken teslim seçeneklerini inceleyin, ayarlamak için platforma özgü alanları kullanın. Şu durumlarda her platform için farklı değerler belirtebilirsiniz: istediğiniz zaman kapatabilirsiniz. Ancak, tüm platforma özgü alanları kullanmanız gerekir. Bunun nedeni, her bir platformun değeri biraz farklı yorumlayabilir. Örneğin, Android'de saniye cinsinden son kullanma süresi olarak ayarlıyken Apple'da son kullanma tarihi.
Örnek: Platforma özel teslim seçenekleri içeren bildirim mesajı
Aşağıdaki v1 gönderme isteği, genel bir bildirim başlığı gönderir ve ancak platforma özel bazı geçersiz kılmalar da gönderir. Özel olarak, istek:
- APN'lerin (Apple platformları) mesaj önceliğini düşük bir ayara ayarlarken Android ve Web platformları için uzun bir geçerlilik süresi belirler.
- kullanıcının Android ve Apple'da (sırasıyla
click_action
vecategory
) bildirime dokunmasının sonucunu tanımlamak için uygun tuşları ayarlar.
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Match update", "body":"Arsenal goal in added time, score is now 3-0" }, "android":{ "ttl":"86400s", "notification"{ "click_action":"OPEN_ACTIVITY_1" } }, "apns": { "headers": { "apns-priority": "5", }, "payload": { "aps": { "category": "NEW_MESSAGE_CATEGORY" } } }, "webpush":{ "headers":{ "TTL":"86400" } } } }
HTTP v1 referans belgelerini inceleyin ayrıntılı bilgi için bkz. E-posta mesajında platforma özel engellemeler. Daha fazla bilgi için içeren istek oluşturmak için Gönderme İstekleri Oluşturma
Teslimat seçenekleri
FCM, adresine gönderilen iletiler için belirli teslim seçenekleri sunar.
mobil cihazlarda ve mobil cihazlarda benzer seçeneklere
Apple platformları ve web. Örneğin, "daraltılabilir" mesaj davranışı şu cihazda destekleniyor:
FCM kullanıcısının collapse_key
cihazı üzerinden Apple'da Android
apns-collapse-id
ve JavaScript/Web'de Topic
üzerinden. Ayrıntılar için bkz.
bu bölümdeki açıklamalar ve ilgili referans belgelere yer verin.
Daraltılamayan ve daraltılabilir mesajlar
Daraltılamaz mesajlar, her bir iletinin teslim edilir. Daraltılamayan bir mesaj, işinize yarayacak içeriksiz "ping" gibi daraltılabilir bir mesajın aksine - mobil uygulamayı kullanarak sunucuyla iletişim kurun.
Daraltılamayan mesajların genel kullanım alanlarından bazıları sohbet mesajları veya kritik öneme sahip mesajlardır. Örneğin bir IM uygulamasında her iletiyi teslim etmek istersiniz çünkü her iletinin içeriği farklı olur.
Android'de olmadan depolanabilecek mesaj sayısı 100 ile sınırlıdır. daraltılır. Öğe sınırına ulaşıldığında, depolanan tüm iletiler silinir. Cihaz geri döndüğünde ise, sınıra ulaşıldığını belirten özel bir mesaj alır. Daha sonra uygulama, durumu düzgün şekilde işleyebilir. Bunun için, genellikle bir sunucuyu senkronize eder.
Daraltılabilir mesaj, Bu, cihaza teslim edilmemişse yeni bir mesaj anlamına gelir.
Daraltılabilir mesajların yaygın kullanım alanlarından biri, bir iletiyi sunucudaki verileri senkronize etmek için bir mobil uygulama. Buna örnek olarak kullanıcıları en son skorla güncelleyen bir spor uygulaması verilebilir. Yalnızca en son mesaj alakalıdır.
Android'de bir mesajı daraltılabilir olarak işaretlemek için
collapse_key
parametresi
gösterir. Varsayılan olarak, daraltma anahtarı uygulama paketinin adıdır.
Firebase konsolunda kayıtlı. FCM sunucusu şunları yapabilir:
Her biri için aynı anda dört farklı daraltılabilir mesaj
her biri farklı bir daraltma anahtarına sahip. Bu sayıyı aşarsanız
FCM yalnızca şu verileri tutar:
Hangi anahtarların tutulacağı konusunda herhangi bir garanti verilmeden dört daraltma anahtarı.
Yük içermeyen konu mesajları varsayılan olarak daraltılabilir. Bildirim mesajları
her zaman daraltılabilir ve collapse_key
parametresini yoksayar.
Hangisini kullanmalıyım?
Daraltılabilir mesajlar performans açısından daha iyi bir seçenektir. Uygulamanızın daraltılamayan mesajlar kullanması gerekmiyorsa. Ancak, daraltılabilir mesajlar kullanıyorsanız FCM en fazla dört farklı daraltma anahtarının kullanılmasına izin verir /FCM istediğiniz zaman değiştirebilirsiniz. Bu sayıyı aşmamanız gerekir. Aksi takdirde öngörülemeyen sonuçlar doğurabilir.
Senaryoyu kullan | Nasıl gönderilir? | |
---|---|---|
Daraltılamaz | Her mesaj, istemci uygulaması için önemlidir ve teslim edilir. | Bildirim mesajları dışında hiçbir mesaj daraltılamaz. varsayılandır. |
Katlanabilir | Daha eski, ilgili bir mesajı oluşturan daha yeni bir mesaj olduğunda FCM, istemci uygulamasıyla alakasız olduğunda eski mesajın yerini alır. Örnek: sunucudan bir veri senkronizasyonu başlatmak için kullanılan veya güncel olmayan iletiler bildirim mesajları. | Mesaj isteğinizdeki uygun parametreyi ayarlayın:
|
İletinin önceliğini ayarlama
Aşağı akış iletilerine teslim önceliği atamak için iki seçeneğiniz vardır: normal ve yüksek öncelikli. Bu davranış, Google Ads'deki normal ve yüksek öncelikli mesajların teslim edilmesinde aşağıdaki gibidir:
Normal öncelikli. Normal öncelikli mesajlar, uygulama ön plan. Arka plandaki uygulamalarda yayınlanma gecikti. Örneğin, kullanıcı arayüzünüzün senkronize halde tutulması veya uygulama verilerinin senkronize edilmesi gibi arka planda normal dağıtım önceliğini seçin.
Yüksek öncelikli. FCM, yüksek öncelikli teslim etmeye çalışır Mesaj anında gönderilir. Yüksek öncelikli mesajlar, zamana duyarlı, kullanıcı tarafından görülebilen içerik içindir.
FCM aracılığıyla gönderilen normal öncelikli mesaj örneği Bir dergiyi bilgilendirmek için kullanılan HTTP v1 protokolü abone olan kullanıcıların, yeni içeriğin indirilmeye hazır olduğunu belirtmelidir:
{ "message":{ "topic":"subscriber-updates", "notification":{ "body" : "This week's edition is now available.", "title" : "NewsMagazine.com", }, "data" : { "volume" : "3.21.15", "contents" : "http://www.news-magazine.com/world-week/21659772" }, "android":{ "priority":"normal" }, "apns":{ "headers":{ "apns-priority":"5" } }, "webpush": { "headers": { "Urgency": "high" } } } }
Mesaj önceliğini ayarlama hakkında platforma özel daha fazla ayrıntı için:
Yaşamdaki önemli kullanım alanları
FCM API'leri aynı değildir acil durum uyarıları veya diğer yüksek riskli aktiviteler için tasarlanmış API'lerin hatası ölüme, yaralanmaya veya çevresel zarara neden olabilir (ör. nükleer tesislerin işletilmesi, hava trafiği kontrolü veya yaşam destek sistemleri) için geçerlidir. Bu tür kullanımların tümü Bölüm 4. a. Hizmet Şartları'nın 7. maddesine tabidir. Verilerinizin yönetilmesi ve ve ayrıca ihlal eder. Google, API'leri "olduğu gibi" sağlar. ve API'leri sonlandırma hakkını saklı tutar. herhangi bir nedenle ve herhangi bir nedenle herhangi bir yükümlülük veya başka yükümlülük üstlenmeksizin.
Bir iletinin kullanım ömrünü ayarlama
FCM genellikle iletileri gönderildikten hemen sonra teslim eder. Ancak bu her zaman mümkün olmayabilir. Örneğin, platform Android ise bu cihaz kapalı, çevrimdışı veya kullanılamıyor olabilir. Veya FCM, iletileri kasıtlı olarak geciktirebilir. bir uygulamanın aşırı kaynak tüketmesini ve bu nedenle pil ömrünü etkiliyor.
Bu durumda FCM, mesajı depolar ve en kısa sürede teslim eder. yapmanız gerektiğini unutmayın. Bu çoğu durumda iyi olsa da her ne kadar Bu da geç gönderilen bir iletinin hiçbir zaman teslim edilmemesi anlamına gelebilir. Örneğin, mesaj, gelen bir arama veya görüntülü sohbet bildirimiyse yalnızca anlamlıdır çağrı sonlandırılmadan önce kısa bir süre boyunca kullanılabilir. Ya da ileti Etkinliğe davetiye göndermek, etkinlik sona erdikten sonra alındıysa bir işe yaramaz.
Android ve Web/JavaScript'te, bir JavaScript'in maksimum ömrünü mesajını alırsınız. Değer, 0 ile 2.419.200 saniye (28 saniye) arasında bir süre olmalıdır. gün) ve FCM olan maksimum süreye karşılık gelir. mesajı iletmeye çalışır. Bunu içermeyen istekler alanı varsayılan olarak maksimum dört haftalık süreye ayarlanır.
Bu özelliğin bazı olası kullanımları şunlardır:
- Görüntülü sohbet gelen aramaları
- Süresi dolan davetiye etkinlikleri
- Takvim etkinlikleri
Bir mesajın kullanım ömrünü belirtmenin bir başka avantajı da
FCM, daraltılabilir ileti kısıtlamasını
0 saniyelik geçerlilik süresi.
FCM, olması gereken iletilerin en iyi şekilde işlenmesini sağlar.
teslim etme konusunda
bilgilendirilmesi gerekir. Hedeflerinize göre
time_to_live
değeri
0, hemen teslim edilemeyen iletilerin silineceği anlamına gelir. Ancak,
çünkü bu tür mesajlar hiçbir zaman depolanmaz. Bu durum, iletilerin
Bildirim mesajları göndererek
Aşağıda, TTL içeren bir istek örneği verilmiştir:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" }, "apns":{ "headers":{ "apns-expiration":"1604750400" } }, "android":{ "ttl":"4500s" }, "webpush":{ "headers":{ "TTL":"4500" } } } }
Bir iletinin kullanım ömrü
Bir uygulama sunucusu FCM hesabına mesaj gönderip mesaj aldığında kimliği geri alırsa, iletinin bu e-posta adresine daha önce teslim edildiği olanak tanır. Bunun yerine, teslimat için kabul edildiği anlamına gelir. Ne olacak? mesajın kabul edilmesinin ardındaki birçok etkene bağlı olarak değişir.
En iyi senaryoda, cihaz FCM ağına bağlıysa Ekran açıktır ve kısıtlama kısıtlaması yoksa ileti hemen teslim edilir.
Cihaz bağlı ancak Doz modundaysa düşük öncelikli mesaj depolanır
Cihaz Doz'dan çıkana kadar FCM tarihine kadar. Ve
collapse_key
işareti burada rol oynar:
Aynı daraltma anahtarının (ve kayıt jetonunun) depolandığı bir ileti zaten
ve
yerine eski ileti silinir ve yeni ileti yer alır
(yani eski ileti, yeni ileti tarafından daraltılır). Ancak,
anahtarı ayarlanmazsa hem yeni hem de eski iletiler ileride teslim edilmek üzere saklanır.
Cihaz FCM adlı cihaza bağlı değilse mesaj şu zamana kadar saklanır:
bağlantı kurulduğunda (yine de daraltma anahtarı kurallarına uyulur). Bir
bağlantı kurulduğunda, FCM bekleyen tüm iletileri
olanak tanır. Cihaz tekrar bağlanmazsa
(örneğin, fabrika ayarlarına sıfırlanmışsa) mesaj zaman aşımına uğrar ve
FCM depolama alanından silindi. Varsayılan zaman aşımı süresi dört haftadır.
time_to_live
işareti ayarlanmaz.
İleti teslimiyle ilgili daha fazla bilgi edinmek için:
Android veya Apple platformlarında mesaj teslimi hakkında daha fazla bilgi edinmek için bkz. FCM raporlama kontrol paneli, Apple ve Android cihazlarda gönderilen ve açılan iletilerin sayısı "gösterimler" için veriler (kullanıcılar tarafından görülen bildirimler).
Doğrudan kanal mesajlaşmasının etkinleştirilmiş olduğu Android cihazlarda cihaz bir aydan uzun süredir FCM adlı cihaza bağlanmadıysa, FCM, iletiyi kabul etmeye devam eder ancak hemen siler. Öğe gönderdiğiniz son veri mesajından sonraki dört hafta içinde bağlanırsa müşteriniz onSilinenMessages() geri çağırmasını alır. Daha sonra uygulama, durumu düzgün şekilde işleyebilir. Bunun için, genellikle bir sunucuyu senkronize eder.
Son olarak, FCM cihaza bir mesaj teslim etmeyi denediğinde ve
Uygulama kaldırıldı. FCM bu mesajı hemen siler ve
kayıt jetonunu geçersiz kılar. Gelecekte bu adrese mesaj gönderme girişimleri
cihaz NotRegistered
hatasına neden olur.
Kısıtlama ve kotalar
Amacımız, FCM aracılığıyla gönderilen tüm iletileri her zaman teslim etmektir. Ancak, her mesajın gönderilmesi bazen genel olarak kötü bir kullanıcı deneyimine yol açabilir. Diğer durumlarda, FCM'nin uygun şekilde sunduğundan emin olmak için bir hizmet sunmaya çalışıyoruz. Şu bölümde açıklanan sınır ve kota türleri: bu bölüm, bu önemli faktörleri dengelememize yardımcı olacaktır.
Aşağı akış mesaj kısıtlama
HTTP v1 API'de aşağı akış için proje başına ve dakika başına kotalar kullanıma sunuldu bahsedeceğim. Dakikada 600 bin iletilik varsayılan kota, iletilerin% 99'undan fazlasını FCM geliştiricilerinin yanı sıra sistemin kararlılığını ve en aza indirildiğini öğrendiniz.
Ani trafik kalıpları kota aşılması hatalarına neden olabilir. Kotanın üzerinde senaryoda, sistem 429 kodlu (QUOTA_EXCEEDED) HTTP durum kodunu kota bir sonraki dakika içinde yeniden doldurulur. 429 yanıt Bu nedenle, 429'u dönüşüm oranlarına göre ele almanız önemle tavsiye edilir. yayınlanmış önerileri görebilirsiniz.
Unutmayın:
- Aşağı akış kotası, istekleri değil mesajları ölçer.
- İstemci hataları (HTTP durum kodu 400-499) sayılır (429'lar hariç).
- Kotalar dakika başınadır, ancak bu dakikalar saate göre belirlenmez.
İzleme kotası
Google Cloud Console'da kotayı, kullanımı ve hataları görüntüleyebilirsiniz:
- Google Cloud konsoluna gidin
- API'ler ve hizmetler
- Tablo listesinden Firebase Cloud Messaging API'yi seçin.
- Seç: QUOTA & SİSTEM SINIRLARI.
NOT: Bu grafikler, kota dakikalarıyla tam olarak uyumlu değildir. Bu, Trafik, kotanın altında gibi göründüğünde 429'lar yayınlanabilir.
Kota artışı isteme
Kota artışı isteğinde bulunmadan önce aşağıdakilerden emin olun:
- Kullanımınız, kesintisiz olarak en az 5 dakika boyunca kotanın en az% 80'i kadar olmalıdır elde eder.
- < %5 istemci hatası oranı, özellikle trafiğin yoğun olduğu zamanlarda
- Geniş ölçekte ileti göndermeyle ilgili en iyi uygulamaları takip ediyorsunuz.
Bu ölçütleri karşılıyorsanız maksimum günlük kullanım için kota artışı isteği gönderebilirsiniz. +% 25 ve FCM, isteği yerine getirmek için mümkün olan her türlü çabayı gösterecektir. (artış garanti edilmez).
Yaklaşan bir lansman nedeniyle daha fazla aşağı akış mesajlaşma kotasına ihtiyaç duyarsanız veya geçici bir etkinlik varsa kotanızı bu etkinlikten en az 15 gün önce isteyin yeterli süre tanıyın. Büyük istekler (dakikada 18 milyondan fazla mesaj) için en az 30 gün önceden bildirimde bulunulması gerekir. Lansmanlar ve özel etkinlik istekleri yalnızca istemci hata oranı ve en iyi uygulama gereksinimlerine tabidir.
FCM kotaları ile ilgili SSS bölümünü de inceleyin.
Konu mesajı sınırı
Konu aboneliği ekleme/kaldırma oranı proje başına 3.000 QPS ile sınırlıdır.
İleti gönderme ücretleri için Takipçi Desteği'ne bakın.
Fanout kısıtlaması
İleti yayma, birden çok cihaza ileti gönderme işlemidir; örneğin, konuları ve grupları seçtiğinizde veya Bildirim oluşturucu hedef kitle veya kullanıcı segmentlerini seçin.
Mesaj dağılmaları anlık olmaz. Bu nedenle, bazen eş zamanlı olarak devam eden yayılma sayısı. Eşzamanlı mesaj sayısını sınırlıyoruz. çıkış sayısını 1.000'e çıkardık. Sonrasında, ek dağılmayı reddedebiliriz. veya bu isteklerin bir kısmı halihazırda mevcut olana kadar ilerleme dağılmaları tamamlandı.
Gerçek ulaşılabilir dağılma oranı, proje sayısından etkilenir aynı anda çıkış isteğinde bulunabilirsiniz. Bir için 10.000 QPS'lik bir yayılma oranı sık görülmez olsa da bu sayı bir garanti değildir ve toplam yükün bir sonucu olduğunu unutmayın. Her ekip üyesinin kullanılabilir dağılma kapasitesi, proje dağılımına değil projeler arasında bölünür. kabul edersiniz. Projenizde devam eden iki dağılma varsa her bir dağılma yalnızca yarısını görebilir. Hedef EBM'nizi en üst düzeye çıkarmak için dağılma hızı, aynı anda yalnızca bir aktif yayılmanın devam etmesidir.
Daraltılabilir mesaj kısıtlama
Yukarıda açıklandığı gibi daraltılabilir mesajlar, içerik barındırmayan bildirimlerdir. daralır. Bir geliştiricinin aynı mesajı bir uygulamaya çok sık gönderirse, söz konusu mesajın azaltılmasını kullanıcının piline olan etkisi.
Örneğin, tek bir e-posta adresine çok sayıda yeni e-posta senkronizasyonu isteği gönderirseniz bir sonraki e-posta senkronizasyon isteğini birkaç dakika erteleyebiliriz. Böylece, çok daha düşük bir ortalama oranla senkronize edilebiliyor. Bu kısıtlama yalnızca kullanıcının yaşadığı pil etkisini sınırlandırır.
Kullanım alanınız yüksek seri çekim gönderme kalıpları gerektiriyorsa daraltılamayan mesajlar doğru seçim olur. Bu tür iletilerde içeriği kullanılması amaçlanmıştır.
Daraltılabilir mesajları, cihaz başına uygulama başına maksimum 20 mesaj ile sınırlandırıyoruz. 1 mesaj her 3 dakikada bir yenilenir.
XMPP sunucusu kısıtlama
FCM XMPP sunucularına bağlanabileceğiniz hızı 400 bağlantıyla sınırlandırıyoruz. ne kadar büyüyeceğini öğreneceksiniz. Bu, ileti teslimiyle ilgili bir sorun olmasa da sistemin kararlılığını sağlamak açısından önemlidir. Her proje için FCM, paralel olarak 2.500 bağlantıya izin verir.
XMPP ile yukarı akış mesajlaşması için FCM sınırları Dakikada 1.500.000 gösterimde yukarı akış mesajları .
Pile karşı koruma sağlamak için cihaz başına yukarı akış mesajlarını 1.000/dakika ile sınırlandırıyoruz zorlanır.
Tek bir cihaza gönderilen maksimum mesaj hızı
Android'de tek bir mesaja dakikada 240, saatte 5.000 mesaj gönderebilirsiniz olanak tanır. Bu yüksek eşiğin amacı, kısa süreli trafik patlamalarına izin vermektir. örneğin kullanıcıların sohbet üzerinden hızlı bir şekilde etkileşim kurduğu zamanlar buna örnek gösterilebilir. Bu sınır, hataların önüne geçer bir cihazdaki pilin yanlışlıkla boşalmasına neden olan mantığın gönderilmesini engellemez.
iOS'ta, hız APNs sınırlarını aştığında hata döndürür.
FCM bağlantı noktası ve güvenlik duvarınız
Kuruluşunuzda, mobil cihazların bağlanmasına izin verecek şekilde yapılandırmanız gerekir Ağınızdaki cihazların mesaj alabilmesi için FCM ile iletişim kurun. FCM, genellikle 5228 numaralı bağlantı noktasını kullanır ancak bazen 443, 5229 ve 5230.
FCM, ağınıza bağlanan cihazlar için şunları sağlamaz: çünkü IP aralığımız çok sık değiştiğinden ve güvenlik duvarı kurallarınız bu program güncelliğini yitirebilir ve kullanıcılarınızın sahip olacaksınız. İdeal olarak bağlantı noktaları 5228-5230 ve 443 hatasız. Ancak, bir IP adresine sahip olmanız gerekiyorsa kısıtlaması varsa goog.json dosyasında listelenen tüm IP adreslerini izin verilenler listesine eklemeniz gerekir. Bu büyük liste düzenli olarak güncellenir ve kararlaştırırsınız. Sorunun neden olduğu sorunlar Güvenlik duvarı IP kısıtlamaları genellikle aralıklıdır ve teşhis edilmesi zordur.
IP yerine izin verilenler listesine eklenebilecek bir dizi alan adı sunuyoruz. adres. Bu ana makine adları aşağıda listelenmiştir. Ek bilgiler kullanmaya başlarsak ana makine adı için, buradaki listeyi güncelleyeceğiz. Güvenlik duvarınız için alan adlarını kullanma kuralı, güvenlik duvarı cihazınızda çalışmıyor olabilir.
AçılacakTCP bağlantı noktaları:
- 5228
- 5229
- 5230
- 443
Açılacak ana makine adları:
- mtalk.google.com
- mtalk4.google.com
- mtalk-staging.google.com
- mtalk-dev.google.com
- alt1-mtalk.google.com
- alt2-mtalk.google.com
- alt3-mtalk.google.com
- alt4-mtalk.google.com
- alt5-mtalk.google.com
- alt6-mtalk.google.com
- alt7-mtalk.google.com
- alt8-mtalk.google.com
- android.apis.google.com
- device-provisioning.googleapis.com
- firebaseinstallations.googleapis.com
Ağ Adresi Çevrimi ve/veya Durum Bilgili Paket Denetimi güvenlik duvarları:
Ağınız Ağ Adresi Çevrimi (NAT) veya Durum Bilgili Paket uyguluyorsa İnceleme (SPI), 30 dakika veya daha uzun bir zaman aşımı uygulayın 5228-5230 numaralı bağlantı noktalarından yararlanın. Bu sayede, kullanıcılara en çok bağlantı kabiliyetini artırırken kullanıcılarınızın pil tüketimini azaltır mobil cihaz cihazlar.
VPN etkileşimleri ve atlanabilirlik
Firebase Cloud Messaging, push mesajlarının sorunsuz bir şekilde yayınlanmasını sağlamak için çeşitli adımlar sunucu arasındaki bağlantının güvenilir olduğunu ve mümkün olduğunca sık yapmasını sağlar. VPN kullanımı bu çalışmayı karmaşık hâle getirir.
VPN'ler, FCM tarafından ince ayarlanması gereken temel bilgileri en üst düzeye çıkarmak için pil ömrü. Bazı durumlarda VPN'ler uzun ömürlü bağlantıların kesilmesi ve bu bağlantıların eksik olması nedeniyle kötü kullanıcı deneyimine yol açması veya yüksek pil maliyetine sahip olur. VPN, bağlantı kurmamıza izin verecek şekilde bunun için şifrelenmiş bir bağlantı (temel ağ üzerinden) kullanarak VPN kablosuz bağlantı veya LTE) kullanır. Bu şekilde güvenilir, pil dostu bir sahip olacaksınız. FCM tarafından atlanabilir VPN kullanımı FCM Push Bildirimi kanalı. Diğer FCM trafiği (ör. kayıt trafiği, etkinse VPN'yi kullanır. FCM bağlantısı VPN'i atlar ve VPN'in sağlayabileceği ek avantajları kaybeder. RACI matrisleri gibi).
Farklı VPN'ler, bir yapılandırmanın gerçekleşip gerçekleşmeyeceğini kontrol etmek için farklı yöntemler kullanır. atlanır. Talimatlar için VPN'nize özgü belgeleri inceleyin.
VPN atlanabilir olacak şekilde yapılandırılmazsa Firebase Cloud Messaging, ve sunucuya bağlanmak için VPN ağını kullanmanız gerekir. Bu durum, Mesajların geciktiği ve daha fazla pil kullanımına neden olabileceği zaman dilimleri Cloud Messaging kullanımı, VPN üzerinden bağlantıyı sürdürmek için çalışır bağlantı.
Kimlik bilgileri
Uyguladığınız FCM özelliklerine bağlı olarak Firebase projenizden aşağıdaki kimlik bilgilerini ekleyin:
Proje kimliği | Firebase projenizin benzersiz tanımlayıcısıdır ve FCM v1 HTTP uç noktası. Bu değer Firebase konsolunun Ayarlar bölmesi. |
Kayıt jetonu | Her istemci uygulaması örneğini tanımlayan benzersiz bir jeton dizesi. Kayıt jetonu tek bir cihaz ve cihaz için gereklidir Grup mesajı. Lütfen kayıt jetonları gizli tutulmalıdır. |
Gönderen kimliği | Firebase projenizi oluşturduğunuzda oluşturulan benzersiz bir sayısal değer Firebase konsolunun Cloud Messaging sekmesi Ayarlar bölmesi. Gönderen kimliği, her bir kullanıcıyı tanımlamak için kullanılır. istemci uygulamasına ileti gönderebilen bir gönderendir. |
Erişim jetonu | HTTP v1'e yapılan istekleri yetkilendiren kısa ömürlü bir OAuth 2.0 jetonu API'ye gidin. Bu jeton şuna ait bir hizmet hesabıyla ilişkilendirilmiş: . Erişim jetonları oluşturmak ve mevcut jetonları değiştirmek için başlıklı makalede açıklanan adımlar Gönderme isteklerini yetkilendirin. |
Sunucu anahtarı (**desteği sonlandırılan** eski protokoller için) | Sunucu uygulama sunucunuzu Google hizmetlerine erişim de dahil olmak üzere desteği sonlandırıldı Firebase Cloud Messaging eski protokolleri kullandığınızdan emin olun. Önemli: Sunucu anahtarını girmeniz gerekir. Ayrıca, sunucunuzu yetkilendirmek için yalnızca sunucu anahtarlarını uygulama sunucusu. Android, Apple platformu ve tarayıcı anahtarları Google tarafından reddedilir. FCM |