observer in Auth.auth().addStateDidChangeListener({ _, user in guard let user = user else { observer.onError(FirebaseAuthError.unknownUser!) return } user.getIDTokenForcingRefresh(true, completion: { token, error in if error != nil { observer.onError(FirebaseAuthError.noAuthToken!) return } observer.onNext(token) observer.onCompleted() }) }) return Disposables.create() }) }