Dans mon Android Android, j'ai une activité qui a 3 ou 4 fragments qui peuvent être attachés en séquence en fonction de certains événements utilisateur ou serveur.
Je voudrais suivre tous ces fragments en tant qu'écrans dans Firebase.
Donc, idéalement, si possible, existe-t-il une API que je peux invoquer dans la création des fragments et dire à firebase que l'utilisateur est actuellement dans fragment1, fragment2 ou fragment3?
Il existe une méthode spéciale pour définir un écran actuel - setCurrentScreen
Je l'ai utilisé comme suit
mFirebaseAnalytics.setCurrentScreen(this, fragment.getClass().getSimpleName(), fragment.getClass().getSimpleName());
Une fois la méthode appelée, le message suivant apparaît dans LogCat
Événement de journalisation (FE): screen_view (_vs), Bundle [{firebase_event_Origin (_o) = auto, firebase_previous_class (_pc) = HomeFragment, firebase_previous_id (_pi) = 4121566113087629222, firebase_previous_screen (Firewall_b_class) (_si) = 4121566113087629223, firebase_screen (_sn) = StatisticsFragment}]
L'événement suivant apparaît sur le suivi d'activité automatique:
Événement de journalisation (FE): screen_view (_vs), Bundle [{firebase_event_Origin (_o) = auto, firebase_previous_class (_pc) = StatisticsFragment, firebase_previous_id (_pi) = 4121566113087629223, firebase_previous_screen (Firepase_b_clean) (_si) = 4121566113087629224}]
Comme vous le voyez, ils sont presque identiques, donc setCurrentScreen
fonctionne.
Je ne peux voir ces classes dans Firebase Console que le lendemain. C'est normal pour Firebase - cela prend du temps de traiter de telles quantités de données.
Ajouter un peu plus d'informations ici à la réponse d'Artem Mostyaev. Le panneau GA/Firebase reflétait le nom de la classe dans la version DEV mais pas dans la version PROD. Le principal coupable ici est
fragment.getClass().getSimpleName()
qui obscurcissent le nom du fragment dans prod. GA/Firebase montrait que le nom de classe ressemblait à (a, b, ah, etc.)
getSimpleName () est également dangereux à utiliser dans d'autres situations.
Plus de documentation: https://medium.com/@elye.project/the-danger-of-using-class-getsimplename-as-tag-for-fragment-5cdf3a35bfe2
Règles de Progaurd
-keepnames class com.somepackage.yourclass