Suite à la Google developer instructions on implementing Firebase in my app, je remarque que les peluches android se plaint.Comment traiter la plainte de la fibre Android concernant les implémentations du service Firebase Messaging exportées?
L'idée est que nous devons mettre en œuvre deux services qui héritent des services Firebase:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { ... }
public class MyFirebaseMessagingService extends FirebaseMessagingService { ... }
puis enregistrez ces services dans le manifeste. Mais ce n'est pas parfait. En particulier, ces deux entrées de service AndroidManifest.xml recommandé ne contiennent pas d'autorisations spéciales:
<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>
et donc le linter dit:
services Exportés (services soit exporté ensemble = true ou contiennent un intention-filter et ne spécifiez pas exporté = false) doit définir une autorisation qu'une entité doit avoir pour lancer le service ou s'y lier. Sans cela, n'importe quelle application peut utiliser ce service.
Dois-je ajouter que cet attribut à chaque balise de service et être fait avec elle
tools:ignore="ExportedService"
ou est-il une meilleure approche dans cette situation? Je veux dire, est-il sûr d'exposer ces services dérivés Firebase particulier comme celui-ci?
Je ne connaissais pas le bouton "Merged Manifest"! Je vous remercie! – AutonomousApps
Nous définissons 'android: exported =" false "' et je reçois toujours des notifications. Vous ne savez pas si Firebase a vraiment besoin d'être exporté. – Prakash
Y a-t-il une explication réelle pour justifier ces commentaires? Vous pourriez lui faire confiance, mais pourquoi devrions-nous? – deed02392