private Task <PhoneNumberVerificationResult> VerifyPhoneNumberAsync(Firebase.Auth.FirebaseAuth auth, IPhoneMultiFactorInfo phoneMultiFactorInfo, IMultiFactorSession multiFactorSession, TimeSpan timeout, bool?requiresSmsValidation = null) { var activity = CrossCurrentActivity.Current.Activity ?? throw new NullReferenceException("current activity is null"); var tcs = new TaskCompletionSource <PhoneNumberVerificationResult>(); var callbacks = new Callbacks(tcs); var builder = PhoneAuthOptions.NewBuilder(auth) .SetActivity(activity) .SetCallbacks(callbacks) .SetMultiFactorHint(phoneMultiFactorInfo.ToNative()) .SetMultiFactorSession(multiFactorSession.ToNative()) .SetTimeout(new Java.Lang.Long((long)timeout.TotalMilliseconds), TimeUnit.Milliseconds); if (requiresSmsValidation.HasValue) { builder.RequireSmsValidation(requiresSmsValidation.Value); } auth.FirebaseAuthSettings.SetAutoRetrievedSmsCodeForPhoneNumber(null, null); PhoneAuthProvider.VerifyPhoneNumber(builder.Build()); return(tcs.Task); }
public Task VerifyPhoneNumberAsync(Activity activity, string phoneNumber) { var callbacks = new PhoneVerificationStateChangeCallbacks(onCodeSent: x => _verificationId = x.VerificationId); var options = PhoneAuthOptions .NewBuilder() .SetPhoneNumber(phoneNumber) .SetTimeout(new Long(60), TimeUnit.Seconds) .SetActivity(activity) .SetCallbacks(callbacks) .Build(); PhoneAuthProvider.VerifyPhoneNumber(options); return(Task.CompletedTask); }