public async Task <FirebaseUser> LoginWithEmailPasswordAsync(string email, string password)
        {
            _user = (await _firebaseAuth.SignInWithEmailAndPasswordAsync(email, password)).User;

            SaveUser();

            return(User);
        }
        public async Task <FirebaseUser> FirebaseLoginWithFacebookAsync(string token)
        {
            var credential = FacebookAuthProvider.GetCredential(token);

            _user = (await _firebaseAuth.SignInWithCredentialAsync(credential)).User;

            SaveUser();

            return(User);
        }
        public async Task <FirebaseUser> CreateUserWithEmailPasswordAsync(string email, string password, string displayName)
        {
            _user = (await _firebaseAuth.CreateUserWithEmailAndPasswordAsync(email, password)).User;

            var request = new UserProfileChangeRequest.Builder();

            request.SetDisplayName(displayName);

            await _firebaseAuth.CurrentUser.UpdateProfileAsync(request.Build());

            SaveUser();

            return(User);
        }
        public async Task <GeneralResponse> LogoutAsync()
        {
            var task = new Task <GeneralResponse>(() =>
            {
                _firebaseAuth.SignOut();

                User  = null;
                _user = null;

                SaveUser();

                return(new GeneralResponse {
                    IsOK = true
                });
            });

            task.Start();


            return(await task);
        }