6

birden project_number/gönderici kimliği koymak. https://developers.google.com/cloud-messaging/concept-optionsnasıl android app birden fazla gönderen kimliği eklemek mümkün istiyorum google-services.json

GCM Gönderen

birden partiler aynı istemci uygulamaya mesaj göndermesine izin verir. Örneğin, istemci uygulamasının birden fazla katkıda bulunan bir makale toplayıcı olduğunu ve her birinin yeni bir makale yayınladıklarında bir ileti göndermesi gerektiğini varsayalım. Bu mesaj, istemci uygulamasının makaleyi indirebilmesi için bir URL içerebilir. Gönderen tüm etkinlikleri tek bir konumda merkezileştirmek yerine, GCM size bu katılımcıların her birinin kendi mesajlarını göndermesine izin verir.

Bu, google-services.json yapılandırma dosyası kullanılarak nasıl başarılır?

+0

Yorumunuzu burada cevaplayacağım. Uzun yorum zincirleri yayınınızı sildiğinden beri. Devam et. FCM'nin kurulumu kolaydır. Şerefe! –

+0

@Zyoo nasıldı? Onu teyit edebilecek miydin? :) –

+0

@intj Sizin yönteminizi denedim, ama istisna var '06-23 21: 24: 07.009 7149-8358/com.google.firebase.quickstart.fcm D/FirebaseInstanceId: arka plan senkronizasyonu başarısız oldu: INVALID_SENDER, 80s’de tekrar deneyin 06-23 21: 24: 51.959 7149-7149/com.google.firebase.quickstart.fcm D/MainActivity: InstanceID belirteci: null' – Zyoo

cevap

4

GÜNCELLEME: Bilinmeyen sorunları önlemek/önlemek için hacky yerine resmi ve önerilen şekilde başvuruyor ve gayri resmi bir yaklaşım. Cevabım here'dan. Birden gönderenler

FCM birden partiler aynı istemci uygulamaya mesaj göndermesine izin verir ileti alma

:

aslında bu konu hakkında documentation part yoktur. Örneğin, istemci uygulamasının birden fazla katkı sağlayan bir makale toplayıcısı olduğunu ve bunların her birinin yeni bir makale yayınladıkları sırada bir mesaj gönderebildiğini varsayalım. Bu mesaj, istemci uygulamasının makaleyi indirebilmesi için bir URL içerebilir. Gönderen tüm etkinlikleri tek bir konumda merkezileştirmek yerine, FCM size bu katılımcıların her birinin kendi mesajlarını göndermesine izin verir.

emin her gönderici sender ID kendi üretir hale, bunu mümkün kılmak için. FCM gönderen kimliğini nasıl alacağınız hakkında bilgi için platformunuzun istemci belgelerine bakın. Kayıt isteği yapıldığında istemci uygulaması, her defasında, kitle alanında farklı bir gönderici kimliği ile her defasında belirteci getirir. Son olarak, kayıt kodunu, ilgili uygulama sunucularıyla paylaşın (FCM kayıt istemcisi/sunucu el sıkışma işlemini tamamlamak için) ve kendi kimlik doğrulama anahtarlarını kullanarak istemci uygulamasına mesaj gönderebilecekler.

100, birden fazla gönderici sınırı olduğunu

not edin.

Burada kafa karıştırıcı ama önemli bir parçası olduğunu düşünüyorum:

kayıt talep istemci uygulaması belirteci birden çok kez, seyirci alanına farklı gönderici kimliği ile her zaman getirir. Başka bir deyişle

, sen Gönderen Kimliği geçen getToken() aramak zorunda ve olacak basitçe "FCM" (örn getToken("2xxxxx3344", "FCM")) parametre olarak. İhtiyacınız olan her bir göndericiyi (proje) için aradığınızdan emin olmanız gerekir.getToken() dokümanlardan

Ayrıca

, not:

Bu bir engelleme fonksiyonu bu yüzden ana iş parçacığı üzerinde demiyorlar edilir.

bazı ek iyi-to-bilir:

  • varsayılan bir benzeri başarısız olursa bu otomatik yeniden denemez.
  • Başarısız olduğunda bir IOException döndürür.
+0

Yani, bu tek bir kayıt belirteci kullanılarak yapılır? Kodu isteğinizi istediğiniz yerde paylaşmanın sakıncası var mı? – Zyoo

+0

Yup. Tek kayıtToken. Ben sadece bağlantıyı kurduğum hızlı başlangıçtan kullandım. –

+0

Bildirimi nasıl gönderirsiniz? "Eşleşmeyen gönderen kimliği" hatası aldım – Zyoo