После выхода и входа под другим аккаунтом видна корзина прошлого пользователя
@Singleton
class CartRepository @Inject constructor(private val api: ShopApi) {
private var cached: Cart? = null
suspend fun cart(): Cart = cached ?: api.cart().also { cached = it }
}
Выход из аккаунта очищает токен и открывает экран входа, процесс не перезапускается. Второй пользователь входит и видит товары первого. Какое решение надёжнее всего?
- Связать данные с сессией и очищать при выходе
- Убрать @Singleton, чтобы кэш создавался заново
- Перезапускать процесс после выхода
- Хранить корзину в SharedPreferences
