Ответ
Для управления одновременным доступом можно использовать Firebase Realtime Database или токены сессии. Пример с Firebase:
// При входе генерируем уникальный токен и сохраняем его
val currentToken = UUID.randomUUID().toString()
Firebase.database.reference.child("users/$userId/currentToken").setValue(currentToken)
// При каждом действии проверяем актуальность токена
Firebase.database.reference.child("users/$userId/currentToken")
.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
if (currentToken != snapshot.value.toString()) {
// Выход, если токен изменился (вошел другой пользователь)
logout()
}
}
})
Другие подходы:
- Использование FCM для уведомления о новом входе
- Хранение времени последней активности и принудительный выход при неактивности
- Ограничение по количеству устройств через серверную логику