Google developer instructions on implementing Firebase in my app'u izlediğimde, android lint'in şikayet ettiğini görüyorum.Dışa aktarılan Firebase Messaging hizmeti uygulamaları ile ilgili android lint şikayetine nasıl adres verilir?
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { ... }
public class MyFirebaseMessagingService extends FirebaseMessagingService { ... }
ve sonra manifest'te bu hizmetleri kayıt:
fikri
biz Firebase hizmetlerden devralan iki hizmet uygulamak zorunda olmasıdır. Ama bu mükemmel değil.<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
ve böylece linter diyor:
Dışa hizmetler (servisler hangi seti ya = true ihraç veya içermeyen Özellikle, bu iki AndroidManifest.xml servis girişleri herhangi bir özel izin içermeyen tavsiye niyet süzgeci ve dışa aktarma belirtilmemiş = yanlış), bir hizmetin başlatılması veya ona bağlanması için bir varlığın sahip olması gereken bir izin tanımlamalıdır. Bu olmadan, herhangi bir uygulama bu servisi kullanabilir.
Sadece her hizmet etiketine bu özelliği eklemelerini Should ve onunla
tools:ignore="ExportedService"
veya bu durumda daha iyi bir yaklaşım olduğunu yapılabilir? Yani, bu Firebase'den türetilen hizmetleri bu şekilde açığa çıkarmak güvenli mi?
"Birleştirilmiş Manifest" düğmesini bilmiyordum! Teşekkür ederim! – AutonomousApps
Biz android: exported = "false" 'ı ayarlıyoruz ve hala bildirim alıyorum. Firebase'in gerçekten ihraç edilmesine ihtiyaç duyup duymadığından emin değil. – Prakash
Bu yorumları doğrulamak için herhangi bir gerçek açıklama var mı? Buna güvenebilirsin, ama neden yapmalıyız? – deed02392