RxFirebaseAuth.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:Attendance 作者:
/**
 * Observes the authentication state for {@link com.google.firebase.auth.FirebaseAuth}
 *
 * @return {@link rx.Observable} of {@link com.google.firebase.auth.FirebaseUser}
 */
public Observable<FirebaseUser> observeAuthState() {
  return Observable.create(new Observable.OnSubscribe<FirebaseUser>() {
    @Override public void call(final Subscriber<? super FirebaseUser> subscriber) {
      final AuthStateListener authStateListener = new AuthStateListener() {
        @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
          FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
          if (firebaseUser == null) {
            FirebaseAuthErrorFactory.createSignOutError(subscriber);
          } else {
            subscriber.onNext(firebaseUser);
          }
        }
      };
      firebaseAuth.addAuthStateListener(authStateListener);
      subscriber.add(Subscriptions.create(new Action0() {
        @Override public void call() {
          firebaseAuth.removeAuthStateListener(authStateListener);
        }
      }));
    }
  });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号