public async Task <bool> SendEmailVerificationAsync()
        {
            try
            {
                var user = _firebaseAuth.CurrentUser;

                if (user != null)
                {
                    if (user.IsEmailVerified)
                    {
                        return(false);
                    }

                    var actionCodeSettings = ActionCodeSettings.NewBuilder()
                                             .SetAndroidPackageName(Android.App.Application.Context.PackageName, false, "0")
                                             .Build();

                    await user
                    .SendEmailVerificationAsync(actionCodeSettings);

                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                _loggerService.LogException(ex.Message);
                return(false);
            }
        }
Exemple #2
0
 /// <summary>
 /// Resets the pass.
 /// </summary>
 /// <param name="email">The email.</param>
 /// <returns>returns task</returns>
 public async Task ResetPass(string email)
 {
     using (var actioncode = ActionCodeSettings.NewBuilder().SetAndroidPackageName(PackageName, true, "0").Build())
     {
         await FirebaseAuth.Instance.SendPasswordResetEmailAsync(email);
     }
 }
Exemple #3
0
        private EmailActionLinkRequest(string type, string email, ActionCodeSettings settings)
        {
            if (string.IsNullOrEmpty(email))
            {
                throw new ArgumentException("Email cannot be null or empty.");
            }

            if (type == EmailSignIn && settings == null)
            {
                throw new ArgumentNullException(
                          "ActionCodeSettings must not be null when generating sign in links");
            }

            this.RequestType = type;
            this.Email       = email;
            if (settings != null)
            {
                this.Url                   = settings.Url;
                this.HandleCodeInApp       = settings.HandleCodeInApp;
                this.DynamicLinkDomain     = settings.DynamicLinkDomain;
                this.IosBundleId           = settings.IosBundleId;
                this.AndroidPackageName    = settings.AndroidPackageName;
                this.AndroidMinimumVersion = settings.AndroidMinimumVersion;
                this.AndroidInstallApp     = settings.AndroidInstallApp;

                this.ValidateSettings();
            }
        }
        private static ActionCodeSettings CreateActionCodeSettings()
        {
            var settings = new ActionCodeSettings();

            settings.Url             = "https://playground-24cec.firebaseapp.com";
            settings.HandleCodeInApp = true;
            settings.IOSBundleId     = "com.tobishiba.playground";
            settings.SetAndroidPackageName("com.tobishiba.playground", true, "21");
            return(settings);
        }
        public async Task <string> AddUserWithEmailPassword(string email, string password)
        {
            var response = await FirebaseAuth.Instance.CreateUserWithEmailAndPasswordAsync(email, password);

            using (var user = response.User)
                using (var actionCode = ActionCodeSettings.NewBuilder().SetAndroidPackageName(PackageName, true, "0").Build())
                {
                    await user.SendEmailVerificationAsync(actionCode);
                }
            return(response.User.Uid);
        }
Exemple #6
0
        public async Task TestSingInAndVerification(string email, string password)
        {
            // запрос входа польователя с адресом и паролем
            var authResult = await FirebaseAuth.Instance.SignInWithEmailAndPasswordAsync(email, password);

            // получение токена
            var getTokenResult = await authResult.User.GetIdTokenAsync(false);

            var token = getTokenResult.Token;

            await FirebaseAuth.Instance.CurrentUser.SendEmailVerificationAsync(ActionCodeSettings.NewBuilder().Build());
        }
        public async Task <string> RegsiterWithEmailPassword(string email, string password)
        {
            var authResult = await Firebase.Auth.FirebaseAuth.Instance.CreateUserWithEmailAndPasswordAsync(email, password);

            using (var user = authResult.User)
                using (var actionCode = ActionCodeSettings.NewBuilder().SetAndroidPackageName(ApplicationProperties.ApplicationId, true, "0").Build())
                {
                    await user.SendEmailVerificationAsync(actionCode);
                }

            var token = await authResult.User.GetIdTokenAsync(false);

            return(token.Token);
        }
        public void InvalidActionCodeSettings(ActionCodeSettings settings)
        {
            var handler = new MockMessageHandler()
            {
                Response = GenerateEmailLinkResponse
            };
            var auth  = this.CreateFirebaseAuth(handler);
            var email = "*****@*****.**";

            Assert.ThrowsAsync <ArgumentException>(
                async() => await auth.GenerateEmailVerificationLinkAsync(email, settings));

            Assert.ThrowsAsync <ArgumentException>(
                async() => await auth.GeneratePasswordResetLinkAsync(email, settings));
        }
Exemple #9
0
        internal static ActionCodeSettings InitActionCodeSettings()
        {
            // [START init_action_code_settings]
            var actionCodeSettings = new ActionCodeSettings()
            {
                Url                   = "https://www.example.com/checkout?cartId=1234",
                HandleCodeInApp       = true,
                IosBundleId           = "com.example.ios",
                AndroidPackageName    = "com.example.android",
                AndroidInstallApp     = true,
                AndroidMinimumVersion = "12",
                DynamicLinkDomain     = "coolapp.page.link",
            };

            // [END init_action_code_settings]
            return(actionCodeSettings);
        }
Exemple #10
0
        /// <summary>
        /// Signs up with email password.
        /// </summary>
        /// <param name="email">The email.</param>
        /// <param name="password">The password.</param>
        /// <returns>
        /// returns string
        /// </returns>
        public async Task <string> SignUpWithEmailPassword(string email, string password)
        {
            try
            {
                //// Allows the user to create and sign up with user inputs using firebase
                var authResult = await FirebaseAuth.Instance.CreateUserWithEmailAndPasswordAsync(email, password);

                using (var user = authResult.User)

                    //// Sending the email verification after sign up
                    using (var actionCode = ActionCodeSettings.NewBuilder().SetAndroidPackageName(PackageName, true, "0").Build())
                    {
                        await user.SendEmailVerificationAsync(actionCode);
                    }

                return(authResult.User.Uid);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
        }
        private void EmailSignUpGo_Clicked(object sender, EventArgs e)
        {
            try
            {
                FirebaseOptions options = new FirebaseOptions.Builder()
                                          .SetApiKey("AIzaSyBnw6unIyRQ4XfFZNekTpU7rWumSvv5cnw")
                                          .SetApplicationId("1:316655980255:android:05c55f9b9a1c0243")
                                          .Build();
                FirebaseApp App = FirebaseApp.Instance ?? FirebaseApp.InitializeApp(Activity, options);

                ActionCodeSettings actionCodeSettings = ActionCodeSettings.NewBuilder()
                                                        .SetUrl("https://cycles.page.link/tc4X")
                                                        .SetHandleCodeInApp(true)
                                                        .SetAndroidPackageName(Activity.PackageName, true, null)
                                                        .Build();

                FirebaseAuth auth = FirebaseAuth.GetInstance(App);
                if (auth.CurrentUser != null)
                {
                    auth.SignOut();
                }



                var email = EmailSignUpLayout?.FindViewById <EditText>(Resource.Id.emailEditText).Text;
                auth.SendSignInLinkToEmail(email, actionCodeSettings)
                .AddOnSuccessListener(this)
                .AddOnCompleteListener(this)
                .AddOnFailureListener(this);
            }
            catch (System.Exception ex)
            {
                Log.Error(Tag, "Error occured", ex);
                Crashlytics.Crashlytics.LogException(Throwable.FromException(ex));
            }
        }
 public System.Threading.Tasks.Task SendPasswordResetEmailAsync(string email, ActionCodeSettings settings)
 {
     return(SendPasswordResetEmail(email, settings).AsAsync());
 }
 public System.Threading.Tasks.Task SendEmailVerificationAsync(ActionCodeSettings settings)
 {
     return(SendEmailVerification(settings).AsAsync());
 }
Exemple #14
0
 internal static EmailActionLinkRequest EmailSignInLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(EmailSignIn, email, settings));
 }
Exemple #15
0
 internal static EmailActionLinkRequest PasswordResetLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(PasswordReset, email, settings));
 }
Exemple #16
0
 internal static EmailActionLinkRequest EmailVerificationLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(VerifyEmail, email, settings));
 }