Bu sayfada, Cloud Messaging ile ilgili sorun giderme yardımı ve sık sorulan soruların yanıtları yer alır.
Bildirim Oluşturucu ile FCM arasındaki fark nedir?
Firebase Cloud Messaging, istemci SDK'ları ve HTTP sunucu protokolü aracılığıyla eksiksiz bir mesajlaşma özellikleri seti sunar. Daha karmaşık mesajlaşma gereksinimleri olan dağıtımlar için FCM doğru seçimdir.
Bildirim Oluşturucu, Firebase Cloud Messaging üzerine inşa edilmiş hafif, sunucusuz bir mesajlaşma çözümüdür. Kullanıcı dostu bir grafik konsolu ve daha az kodlama gereksinimi sunan Bildirim Oluşturucu, kullanıcıların yeniden etkileşim kurmak ve kullanıcıları elde tutmak, Uygulama Kullanıcı Kitlesini Büyütme'yi teşvik etmek ve pazarlama kampanyalarını desteklemek için mesaj göndermesine olanak tanır.
| Özellikler | Bildirim Oluşturucu | Cloud Messaging | |
|---|---|---|---|
| Hedef | Tek cihaz | ||
| Konulara (ör. hava durumu) abone olan istemciler | |||
| Önceden tanımlanmış kullanıcı segmentindeki (uygulama, sürüm, dil) istemciler | |||
| Belirtilen Analytics kitlelerindeki istemciler | |||
| Cihaz gruplarındaki istemciler | |||
| İstemciden sunucuya yukarı akış | |||
| Mesaj Türü | 2 KB'a kadar bildirimler | ||
| 4 KB'a kadar veri mesajları | |||
| Yayınlama | Anında | ||
| Gelecekteki istemci cihaz yerel saati | |||
| Analytics | Yerleşik Notifications analiz koleksiyonu ve dönüşüm hunisi analizi |
FCM hizmetini kullanmak için diğer Firebase hizmetlerini kullanmam gerekir mi?
Firebase Cloud Messaging ürününü diğer Firebase hizmetlerini kullanmadan bağımsız bir bileşen olarak kullanabilirsiniz.
Hedeflediğim cihazlar neden mesajları almıyor?
Cihazların mesajları başarıyla almadığı durumlarda öncelikle şu iki olası nedeni kontrol edin:
Bildirim mesajları için ön planda mesaj işleme. İstemci uygulamalarının, uygulama cihazda ön plandayken bildirim mesajlarını işlemek için mesaj işleme mantığı eklemesi gerekir. iOS ve Android ile ilgili ayrıntıları inceleyin.
Ağ güvenlik duvarı kısıtlamaları. Kuruluşunuzda internete giden veya internetten gelen trafiği kısıtlayan bir güvenlik duvarı varsa Firebase Cloud Messaging istemci uygulamalarınızın mesaj alabilmesi için güvenlik duvarını FCM ile bağlantıya izin verecek şekilde yapılandırmanız gerekir. Açılacak bağlantı noktaları şunlardır:
- 5228
- 5229
- 5230
FCM genellikle 5228 numaralı bağlantı noktasını kullanır ancak bazen 5229 ve 5230 numaralı bağlantı noktalarını da kullanabilir. FCM belirli IP'ler sağlamaz. Bu nedenle, güvenlik duvarınızın Google'ın 15169 ASN'sinde listelenen IP bloklarında bulunan tüm IP adreslerine giden bağlantıları kabul etmesine izin vermeniz gerekir.
Android uygulamamda onMessageReceived neden çağrılmıyor?
Uygulamanız arka plandayken bildirim mesajları sistem tepsisinde gösterilir ve onMessageReceived çağrılmaz. Veri yükü içeren bildirim mesajları için bildirim mesajı sistem tepsisinde gösterilir ve bildirim mesajına dahil edilen veriler, kullanıcı bildirime dokunduğunda başlatılan intent'ten alınabilir.
Daha fazla bilgi için Mesajları alma ve işleme başlıklı makaleyi inceleyin.
Yedekten geri yüklenen etkin bir uygulama örneğine mesaj gönderdiğimde neden 404 hatası alıyorum?
FID (Firebase yükleme kimliği), bir uygulama örneğinin tanımlayıcısıdır. Varsayılan olarak Firebase Kurulum verileri yedeklenir ve geri yüklenir. Dolayısıyla, geri yükleme durumunda, geri yüklenen uygulama örneği ve orijinal uygulama örneği aynı FID'yi paylaşır. FCM, FID başına yalnızca bir jeton depoladığından hem orijinal uygulama örneği hem de geri yüklenen uygulama örneği kullanılıyorsa bir uygulama örneği FCM'e kaydolduğunda diğer uygulama örneğinin jetonu kaldırılır ve bu durum 404 hatalarına neden olur.
Geliştiricilerin uygulamalarında aşağıdakileri yapmalarını öneririz:
- Yedeklemedeki Firebase kurulum verilerini hariç tutun. Firebase kurulum verileri
PersistedInstallation....jsondosyasında saklanır. Dosya adı, bir uygulama için sabit bir değerdir. Örneğin,<exclude domain="file" path="PersistedInstallation.W0R...GQ.json" />
Apple, APN'ler için eski ikili protokolün kullanımdan kaldırılacağını duyurdu. Herhangi bir işlem yapmam gerekiyor mu?
Hayır. Firebase Cloud Messaging, 2017'de HTTP/2 tabanlı APNs protokolüne geçiş yaptı. iOS cihazlara bildirim göndermek için FCM kullanıyorsanız herhangi bir işlem yapmanız gerekmez.
FCM kotaları ve sınırları
Geniş bir müşteri tabanını 2 dakika içinde nasıl bilgilendirebilirim?
Bu kullanım alanı desteklenemez. Trafiğinizi 5 dakikaya yaymanız gerekir.
Uygulamam, kullanıcıları etkinlikler hakkında bilgilendiriyor ve iş modelimi desteklemek için bu mesajların hemen teslim edilmesi gerekiyor. Daha fazla kota alabilir miyim?
Maalesef bu nedenle kota artışı yapamıyoruz. Trafikte ani artışları önlemek için trafiğinizi 5 dakikaya yaymanız gerekir.
Mesajlarım planlanmış etkinliklerle ilgili. Tüm trafiği saat başında nasıl gönderebilirim?
Bildirimleri etkinlikten en az 5 dakika önce göndermeye başlamanızı öneririz. Alternatif olarak, veri mesajları gönderin ve yerel bildirimleri önceden planlamak için platformunuzun onMessageReceived işleyicisinin analogunu uygulayın.
Kota kullanımımı nasıl izleyebilirim?
Kota metriklerini grafik haline getirme ve izleme ile ilgili Google Cloud kılavuzuna göz atın.
429 hataları işletmem için başa çıkması zor bir durum. 429 hatası almamak için muafiyet veya daha fazla kota alabilir miyim?
Kota sınırlarının zorlayıcı olabileceğinin farkındayız ancak kotalar, hizmetin güvenilirliğini korumak için hayati önem taşır ve muafiyet tanınamaz. 429 hatalarını düzgün şekilde işlemek için yeniden denemeleri kullanın.
Kota artışı isteğimin yerine getirilmesi ne kadar sürer?
Kota artırma isteğiniz, FCM kullanımınıza bağlıdır. Her durumda, birkaç iş günü içinde yanıt alırsınız. Bazı durumlarda, FCM kullanımınız ve çeşitli koşullarla ilgili olarak karşılıklı görüşmeler yapılması gerekebilir. Bu da süreci uzatabilir. Tüm şartlar karşılanırsa çoğu istek 2 hafta içinde işleme alınır.
Geçici bir etkinlik için daha fazla kota alabilir miyim?
En fazla 1 ay süren bir etkinliği desteklemek için ek kota isteğinde bulunabilirsiniz. İsteği, etkinlikten en az 1 ay önce, etkinliğin ne zaman başlayıp ne zaman biteceğine dair net ayrıntılarla birlikte gönderin. FCM, isteği yerine getirmek için her türlü makul çabayı gösterecektir. Onaylanan kota artışları, etkinlik sona erdikten sonra geri alınır.
Mevcut kotam değişebilir mi?
Google bu işlemi kolayca yapmaz ancak sistemin bütünlüğünü korumak için kotalar gerektiği şekilde değiştirilebilir. Google, mümkün olduğunda bu tür değişiklikleri önceden size bildirir. Hizmet duyurularını alma şansınızı artırmak için Cloud MSA iletişim kişilerinizi güncel tutun.
FCM eski API'nin desteği sonlandırıldı
Sunucu tarafı API'lerin desteği Eylül 2026'da sonlandırılacak
Hangi API'lerin ve özelliklerin desteği sonlandırıldı ve kullanımdan kaldırılacak? Bu API'leri kullanıyorsam ne yapmalıyım?
Tüm InstanceId sunucu API'leri ve cihaz grubu özelliği kullanımdan kaldırıldı ve 29 Eylül 2027'de kullanımdan kaldırılacak. Aşağıdaki tabloda, desteği sonlandırılan API'ler/özellikler ve yapılması gereken işlemler hakkında daha fazla bilgi verilmektedir.
| API adı | API Uç Noktası | Kullanım Amacı | Müşteri üzerindeki etkisi | İşlem Gerekli |
|---|---|---|---|---|
| InstanceId info API | https://iid.googleapis.com/iid/info | InstanceId / FCM jetonuyla ilgili bilgi alma | Bu API'ye gönderilen istekler 29 Eylül 2027'den sonra başarısız olmaya başlayacak. | Jeton doğrulama için API'yi kullanan müşteriler, FCM V1 gönderme API'sini kullanmalı ve validate_only değerini "true" olarak ayarlamalıdır.
Konu aboneliği bilgilerini almak için API'yi kullanan müşteriler yeni konu aboneliği API'sine geçmelidir. |
| InstanceId konu aboneliği API'si | https://iid.googleapis.com/iid/v1/…/rel/topics https://iid.googleapis.com/iid/v1:batchAdd https://iid.googleapis.com/iid/v1:batchRemove |
Eski konu aboneliği API'si aracılığıyla bir konuya jeton abone etme. | Bu API'ye gönderilen istekler 29 Eylül 2027'den sonra başarısız olmaya başlayacak. | Konu aboneliği ve abonelikten çıkma için yeni FCM konu aboneliği sunucu API'sine geçiş yapın. |
| InstanceId toplu içe aktarma API'si | https://iid.googleapis.com/iid/v1:batchImport | Sunucu tarafında toplu olarak iOS için FCM jetonları oluşturma. | Bu API'ye gönderilen istekler 29 Eylül 2027'den sonra başarısız olmaya başlayacak.
Sunucu tarafında APN jetonlarından FCM kayıt oluşturma desteklenmeyecek. |
APNs jetonlarını kullanarak bildirim göndermek için Apple'ın APNs hizmetini kullanabilirsiniz.
FCM tarafından sağlanan ek avantajlardan yararlanmak için uygulamanızı FCM iOS SDK ile entegre edin. Bu işlem, istemcide FCM kayıtları oluşturur. |
| Cihaz grubu yönetimi API'si | https://fcm.googleapis.com/fcm/notification https://fcm.googleapis.com/gcm/notification https://fcm.googleapis.com/iid/notification https://fcm.googleapis.com/notification |
Cihaz grubu üyelerini ekleme / kaldırma/ alma. | Bu API'ye gönderilen istekler 29 Eylül 2027'den sonra başarısız olmaya başlayacak. | Özelliği kullanmayı bırakmayla ilgili rehberimizi inceleyin.
Mesajlar, grup jetonları yerine tek tek FCM kayıtlarına gönderilmeye devam edebilir. |
| Cihaz grubu gönderme | https://fcm.googleapis.com/v1/projects/…/messages:send | Grup notification_key'i kullanarak cihaz gruplarına mesaj gönderme | Bu API çalışmaya devam edecek ancak 29 Eylül 2027'den sonra cihaz grubu jetonlarını desteklemeyecek. |
Konu aboneliklerini yönetmek için Firebase Admin SDK'yı kullanıyorsam bu kullanımdan kaldırma işleminden etkilenir miyim? Ne yapmalıyım?
Konu aboneliklerini yönetmek için Firebase Admin SDK'nın önceki sürümlerini kullanıyorsanız bu değişiklikten etkileneceksiniz. Firebase Admin SDK'nızı aşağıdaki sürümlere yükseltmeniz gerekir:
| Platform | Etkilenen Admin SDK sürümü | Yükseltilecek Admin SDK sürümü |
|---|---|---|
| Node.js | <=14.4.0 | >=14.5.0 |
| Python | <=7.6.0 | >=7.7.0 |
| Java | <=9.10.0 | >=9.11.0 |
| Go | <=4.21.0 | >=4.22.0 |
| .NET | <=3.6.0 | >=3.7.0 |
29 Eylül 2027'den önce hizmet düzeyinde düşüş olacak mı?
Hayır. Desteği sonlandırılan API'lerden alternatiflere geçiş yapmak için 12 ay süreniz vardır. Bu süre zarfında hizmetinizde herhangi bir kesinti olmaz. Kullanımdan kaldırma işleminden etkilenmemek için taşıma işlemini mümkün olan en kısa sürede planlamanızı önemle tavsiye ederiz.
29 Eylül 2027'den sonra, desteği sonlandırılan API'leri çağırırken hata almanız beklenir.
Yeni kullanıcılar, kullanımdan kaldırılmadan önce desteği sonlandırılan API'leri/özellikleri kullanmaya başlayabilir mi?
Yeni kullanıcılar, desteği sonlandırılan API'leri/özellikleri 1 Ocak 2027'den önce kullanmaya başlayabilir. 1 Ocak 2027'den sonra yeni kullanıcılar, desteği sonlandırılan API'leri kullanamayacak. Desteği sonlandırılan API'leri kullanan kullanıcılar, bu API'leri 29 Eylül 2027'ye kadar kullanmaya devam edebilir.
AndroidConfigV2 SSS
Eski AndroidConfig (v1) API ne kadar süreyle desteklenecek?
FCM, AndroidConfigV2'nin genel kullanıma sunulma tarihinden sonraki birkaç yıl boyunca AndroidConfig yüklerini desteklemeye devam etmeyi planlıyor. Geçiş süreci birkaç yıl sürecek olsa da AndroidConfigV2, daha öngörülebilir bildirim teslimi sağlar. Bu nedenle, mümkün olan en kısa sürede geçiş yapmanız önerilir.
AndroidConfigV2 hangi Android OS sürümlerini destekler?
AndroidConfigV2, Google tarafından desteklenen tüm Android sürümlerinde desteklenecek. Eski v1 API kullanımdan kaldırıldığında 10 yıldan eski cihazlar hariç tüm cihazlar desteklenecek.
AndroidConfigV2, yalnızca eski v1 arayüzünü destekleyen cihazlara yükleri iletir mi? Değişiklikleri hangi sırayla uygulamalıyım?
Evet. Bir AndroidConfigV2 isteği gönderdiğinizde FCM ve GMS Core, eski istemci SDK'larını çalıştıran cihazlar veya henüz onNotificationReceived() ya da onBackgroundSyncReceived()'yi geçersiz kılmamış uygulamalar için yükü otomatik olarak çevirir ve onMessageReceived() kullanarak yayınlar.
AndroidConfigV2 neden doğrudan NotificationManager.notify() yöntemini çağırmak yerine bildirimleri FCM SDK'sı üzerinden döndürmeyi gerektiriyor?
Açık kaynak FCM SDK'ya NotificationResponse döndürerek veya FcmNotificationManager kullanarak:
- Uygulamanız, bildirimin şifresini çözmek veya bildirimi özelleştirmek için korumalı bir yürütme penceresi alır.
- Uygulamanızın süresi dolarsa GMS Core,
remote_notification.notificationbölümünde yapılandırdığınız yedek bildirimi yayınlayarak zamanında teslimat yapılmasını sağlar.
AndroidConfigV2, uygulamam ön plandayken ve arka plandayken bildirimleri farklı şekilde mi işler?
Hayır. Eski v1 bildirim mesajlarının aksine AndroidConfigV2, uygulamanızın ön planda veya arka planda olmasına bağlı olarak mesaj yönlendirmeyi bölmez.
RemoteNotification gönderdiğinizde, mutable_content: true değerini ayarlayıp NotificationResponse.createEmpty() kullanarak onNotificationReceived() içinde açıkça sessize almadığınız sürece bildirim her iki durumda da otomatik olarak gösterilir.
Uygulamamın, değiştirilebilir bir RemoteNotification'ı işlemek için ne kadar süresi var?
mutable_content: true bir RemoteNotification üzerinde ayarlandığında uygulamanızın, NotificationResponse döndürmeden önce yüklerin şifresini çözmek, küçük öğeleri (ör. avatarlar) getirmek veya uygulama sunucunuzla iletişime geçmek için onNotificationReceived() içinde 20 saniyeye kadar süresi olur. Geri çağırma 20 saniyeyi aşarsa yürütme iptal edilir ve GMS Core, remote_notification.notification yüküne göre otomatik olarak bir yedek bildirim yayınlar.
Değiştirilebilir RemoteNotification'lar için bildirim engelleme yaptırımı nasıl çalışır?
Uygulamalar, onNotificationReceived() üzerinden NotificationResponse.suppress() döndürerek RemoteNotification öğesini gizleyebilir. Örneğin, bir sohbetin sesi kapatıldığında, bir gönderen engellendiğinde veya uçtan uca şifrelenmiş bir yükün doğrulaması başarısız olduğunda.
- Arka planda: Uygulamanız, kayan bir zaman aralığında alınan
RemoteNotificationmesajlarının% 25'ini gizleyebilir. Uygulamanızın arka planda engelleme oranı %25'i aşarsa GMS Core,remote_notification.notificationyükünden yedek bildirimi otomatik olarak oluşturup yayınlar. - Ön planda: Ön planda etkin durumdayken tüm uzak bildirimleri gizleyebilirsiniz. Örneğin, sistem bildirimi yayınlamak yerine uygulama içi kısa mesaj göstermek veya açık bir sohbet ekranını güncellemek için kullanılabilir.
Uygulamam tek bir RemoteNotification'dan birden fazla bildirim yayınlayabilir veya mevcut bir bildirimi iptal edebilir mi?
Evet. Birden fazla bildirimi iptal etmek veya yayınlamak için aşağıdakileri kullanın:
- Tek bir bildirimi iptal etme: Daha önce yayınlanan bir bildirimi kapatmak için
onNotificationReceived()adresindenNotificationResponse.createCancel(tag, id)döndürün. - Birden fazla bildirim yayınlama veya iptalleri ve yayınları birleştirme:
postNow(tag, id, notification)vecancelNow(tag, id)işlevlerini birden çok kez çağırmak içinonNotificationReceived()içindegetFcmNotificationManager(message)işlevini çağırın ve tamamlandığındamanager.finished()değerini döndürün.
Özel RemoteViews, AndroidConfigV2 ile çalışabilir mi?
Evet, özel RemoteViews, AndroidConfigV2 ile çalışır.
onNotificationReceived(), standart bir Android Notification nesnesi döndürür. setCustomContentView() gibi tüm standart Android bildirim API'leri desteklenmeye devam eder. RemoteViews ve Views'un bakım modunda olduğunu ve Compose'a geçiş yapmanızın önerildiğini unutmayın.