Salut à tous !
Je développe une appli Android qui communique avec une base de donnée Firebase Cloud Firestore. Pour ce faire j'ai donc recours à la classe `FirebaseFirestore`. Celle-ci, implémentant le schéma singleton, propose une méthode `getInstance()` qui fournit l'instance avec laquelle travailler.
Chaque fois que je veux exécuter une requête, il faut que je fasse un `FirebaseFirestore::getInstance()->maRequete()`, c'est comme ça que ça marche.
Toutefois, je voulais appeler une seule fois le `getInstance()` (bien que ça n'ait aucun intérêt en fait) et ainsi ranger ça dans une classe, en tant qu'attribut de classe `static`.
Sauf qu'un gars qui s'y connaît a dit à un mec qui voulait faire la même chose que moi, qu'il ne faut surtout pas faire ça. Voici ses explications :
Do not place Android context classes in static fields. Static reference to FirebaseFirestore which has field context pointing to Context will lead to a memory leak.
A static field will leak contexts. Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a Fragment or Activity, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.
So instead of storing it as a static variable call getInstance() whenever is needed.
Sauf que je ne comprends pas ce qu'il dit (pas un problème de traduction, c'est juste que techniquement je suis perdu). Quelqu'un pourrait-il reformuler svp ?