private async void registerNewAccount(object sender, EventArgs e)
        {
            if (name.Text?.Length > 0 && email.Text?.Length > 0 && password.Text?.Length > 0)
            {
                try
                {
                    string token = await DependencyService.Get <IFirebaseAuthenticator>()
                                   .SignUpWithEmailPassword(email.Text, password.Text, name.Text, isDriver.IsChecked);

                    string paymentId = PaymentHelper.CreateNewCustomer(email.Text.Trim());
                    await FirebaseFirestoreHelper.AddUserInfo(name.Text.Trim(), email.Text.Trim().ToLower(), isDriver.IsChecked, paymentId);

                    await Xamarin.Essentials.SecureStorage.SetAsync("isLogged", "1");

                    await Xamarin.Essentials.SecureStorage.SetAsync("UserEmail", email.Text.Trim());

                    App.UserEmail = email.Text.Trim();
                    await Xamarin.Essentials.SecureStorage.SetAsync("PaymentId", paymentId);

                    App.PaymentId = paymentId;
                    await Xamarin.Essentials.SecureStorage.SetAsync("UserName", name.Text.Trim());

                    App.UserName = name.Text.Trim();
                    Xamarin.Forms.Application.Current.MainPage = new AppShell();
                    await Shell.Current.GoToAsync("//main");
                }
                catch (Exception ex)
                {
                    if (ex.GetType().ToString() == "Firebase.Auth.FirebaseAuthInvalidCredentialsException")
                    {
                        await DisplayAlert("Oops", "Please check the Email is correct", "Ok");
                    }
                    else if (ex.GetType().ToString() == "Firebase.Auth.FirebaseAuthWeakPasswordException")
                    {
                        await DisplayAlert("Oops", "The password doesn't meet the minimum security requirements. Please re-enter a stronger Password", "Ok");
                    }
                    else if (ex.GetType().ToString() == "Firebase.Auth.FirebaseAuthUserCollisionException")
                    {
                        await DisplayAlert("Oops", "The entered Email has already been used before. Try logging in or resetting the password.", "Ok");
                    }
                    else
                    {
                        await DisplayAlert("Oops", "Something went wrong. Please try again.", "Ok");
                    }
                }
            }
            else
            {
                await DisplayAlert("Oops", "Some of the fields have not been filled in.", "Ok");
            }
        }
        private void AddNewPaymentMethod(object sender, EventArgs e)
        {
            string userId = PaymentHelper.CreateNewCustomer(App.UserEmail);

            if (cardNumber.Text == "" || expiryMonth.Text == "" || expiryYear.Text == "" ||
                cvv.Text == "")
            {
                DisplayAlert("Oops", "One or more fields have not been filled in", "Ok");
            }
            else
            {
                try
                {
                    PaymentHelper.AddNewPaymentOption(cardNumber.Text, Int32.Parse(expiryMonth.Text), Int32.Parse(expiryYear.Text), cvv.Text);
                }
                catch (Stripe.StripeException ex)
                {
                    DisplayAlert("Oops", ex.Message, "Ok");
                }
            }
        }