1

Je me demande s'il existe un moyen de tester pour voir si vous êtes abonné à un sujet sur le côté android des choses.Android/Firebase - Vérifiez si vous êtes abonné au sujet

Fondamentalement, je suis HOPING que tous les appareils seront abonnés à un sujet lors de leur installation, lorsque le jeton est d'abord obtenu par le périphérique. Cependant, il y a toujours une chance que l'appareil ne s'abonne pas. Le jeton d'enregistrement FCM doit être installé depuis longtemps sur l'appareil. Par conséquent, la méthode onTokenRefresh() ne doit plus être appelée sans effacement de données, désinstallation/réinstallation, etc.

Mon idée était de tester pour voir si l'appareil est abonné à un sujet dans mon MainActivity, et sinon, essayez de vous abonner à nouveau. Si elle ne parvient pas à inscrire, puis obtenir un nouveau jeton et essayer à nouveau, etc.

@Override 
    public void onTokenRefresh() { 
    // Get updated InstanceID token. 
    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.e(TAG, "Refreshed token: " + refreshedToken); 

    // Subscribe to a topic 
    Log.e(TAG, "Subscribing to topic"); 
    FirebaseMessaging.getInstance().subscribeToTopic("test"); 

Alors, je peux vous abonner et désabonner, mais comment puis-je vérifier si l'appareil est abonné à un sujet? J'ai fait ma part de googling et je n'ai rien trouvé, malheureusement.

J'apprécierais grandement toute assistance. Merci!

Répondre

1

Il n'y a actuellement aucun moyen de vérifier sur le côté client s'ils sont abonnés à un sujet.

Le comportement pour subscribeToTopic est qu'il s'abonnerait immédiatement au sujet spécifié, s'il échoue, il réessayerait lui-même (sauf si votre application a été supprimée). Voir ma réponse here.

Je pense que forcer l'appel onTokenRefresh juste pour s'assurer que subscribeToTopic est trop. Vous pouvez simplement l'appeler dans votre activité initiale si vous le souhaitez, de cette façon, chaque fois que l'application démarre, elle envoie la demande d'abonnement.