rxDart условный switchMap - PullRequest
       16

rxDart условный switchMap

0 голосов
/ 04 апреля 2020

Как часть моей службы аутентификации, я пытаюсь отобразить Stream from the firebase_auth package to a realtime listener Stream` соответствующего пользователя в firestore.

Чтобы добиться этого, я использую switchMap преобразователь потока из пакета rxDart.

Однако значение, возвращаемое из FirebaseAuth.instance.onAuthStateChanged, может быть null, и в этом случае я бы хотел, чтобы результирующий поток также возвратил null.

Дело в том, что я не уверен, как этого добиться. Должен ли я вернуть единственное значение Stream of value null? Если да, то как?

Я попытался вернуть функцию генератора async* {yield null};, но она не сработала.

    _userStream = FirebaseAuth.instance.onAuthStateChanged
        .transform(SwitchMapStreamTransformer((FirebaseUser user) {
      // user can be null here what should I return ?
      return () async* {yield null}; // this doesnt work
      return FirestoreUserService.getUserStreamFromId(user.uid);
    }));

Ура! :)

...