/// <summary>
        /// Detaches credentials from a given provider type from this user. This prevents the user from signing in to this account in the future with credentials from such provider.
        /// </summary>
        /// <param name="providerId">A unique identifier of the type of provider to be unlinked.</param>
        /// <returns>Task of IFirebaseUser</returns>
        public IObservable <IFirebaseUser> Unlink(string providerId)
        {
            return(Observable.Create <IFirebaseUser>(
                       async observer =>
            {
                IAuthResult authResult = null;

                try
                {
                    authResult = await _user.UnlinkAsync(providerId);
                }
                catch (Exception ex)
                {
                    observer.OnError(GetFirebaseAuthException(ex));
                    return;
                }

                observer.OnNext(new FirebaseUser(authResult.User));
                observer.OnCompleted();
            }));

            //return Observable.Create<IFirebaseUser>(
            //    observer =>
            //    {
            //        var subscription = _user.UnlinkAsync(providerId)
            //            .ToObservable()
            //            .Select(authResult => new FirebaseUser(authResult.User))
            //            .Subscribe(x => observer.OnNext(x), ex => observer.OnError(GetFirebaseAuthException(ex)));

            //        return new CompositeDisposable(subscription);
            //    });
        }
Exemplo n.º 2
0
        /// <summary>
        /// Detaches credentials from a given provider type from this user. This prevents the user from signing in to this account in the future with credentials from such provider.
        /// </summary>
        /// <param name="providerId">A unique identifier of the type of provider to be unlinked.</param>
        /// <returns>Task of IUserWrapper</returns>
        public async Task <IFirebaseUser> UnlinkAsync(string providerId)
        {
            try
            {
                IAuthResult authResult = await _user.UnlinkAsync(providerId);

                return(new FirebaseUser(authResult.User));
            }
            catch (FirebaseException ex)
            {
                throw GetFirebaseAuthException(ex);
            }
        }