Дарт: получить текущее значение в потоке - PullRequest
0 голосов
/ 21 июня 2020

Я делаю приложение Flutter, в котором использую Firebase Auth и Cloud Firestore. Для каждого пользователя у меня есть обучающий документ с пользовательским uid в качестве идентификатора документа. Когда я обновляю данные своих тренеров, я хочу убедиться, что можно изменить только документ текущего пользователя, вошедшего в систему.

У меня есть класс AuthService со следующим методом для получения текущего пользователя:

Stream<FirebaseUser> get user {
  return _auth.onAuthStateChanged;
}

Итак, когда я хочу изменить обучающий документ в моем классе DatabaseService, я хочу получить текущее значение потока, чтобы получить идентификатор пользователя. Я не думаю, что могу использовать StreamBuilder или Provider, так как это не дерево виджетов, а простой класс Dart. Однако я не думаю, что могу использовать .listen (), так как я хочу получить только текущее значение Stream, а не все из них.

Как мне получить текущее значение Dart Stream?

1 Ответ

2 голосов
/ 21 июня 2020

Вероятно, вы могли бы сохранить локальную переменную currentUser, прослушивать поток и обновлять currentUser каждый раз, когда поток дает новое значение. Прочтите currentUser, когда захотите получить текущего пользователя.

...