Действительно ли необходимо использовать поток при подписании в Firebase?Android

Форум для тех, кто программирует под Android
Anonymous
Действительно ли необходимо использовать поток при подписании в Firebase?

Сообщение Anonymous »

У меня есть операция, чтобы войти в Firebase: < /p>

Код: Выделить всё

suspend fun signIn(user: String, pass: String): Response
И я называю это Signin в ViewModel, как это:
class AuthViewModel @Inject constructor(
private val repo: AuthRepository
): ViewModel() {
private val _signInResponse = MutableStateFlow(null)
val signInResponse: StateFlow = _signInResponse.asStateFlow()

fun signIn(user: String, pass: String) = viewModelScope.launch {
_signInResponse.value = Response.Loading
_signInResponse.value = repo.signIn(user, pass)
}
}
< /code>
Реализация функции выглядит следующим образом: < /p>
override suspend fun signIn(user: String, pass: String) = try {
auth.signIn(user, pass).await()
Response.Success(Unit)
} catch (ex: Exception) {
Response.Failure(ex)
}
< /code>
, который работает нормально. Тем не менее, мне трудно понять, зачем использовать или не использовать поток, и излучать результат: < /p>
override suspend fun signIn(user: String, pass: String) = flow {
try {
auth.signIn(user, pass).await()
emit(Response.Success(Unit))
} catch (e: Exception) {
emit(Response.Failure(e))
}
}
< /code>
Правильно ли использовать поток? Или не требуется, поскольку операция в регистрации происходит только один раз? Кроме того, рекомендуется ли использовать mutablestateflow или sharedflow?

Подробнее здесь: https://stackoverflow.com/questions/794 ... n-firebase

Вернуться в «Android»