예제 #1
0
        /*****************************************************************/
        // METHODS
        /*****************************************************************/
        #region Methods

        /// <summary>
        /// Verify phone no.
        /// </summary>
        /// <param name="callBack">Callback for PCL</param>
        /// <param name="phoneNo">Phone no. to verify</param>
        /// <returns></returns>
        public Task <FirebaseResponse> VerifyPhoneNo(IFirebaseServiceCallBack callBack, string phoneNo)
        {
            this.FirebaseServiceCallBack = callBack;

            try
            {
                // Check if phone no. is white listed
                WhiteListedPhoneNo = FirebaseService.CheckForTestPhoneNo(phoneNo);
                // Verify phone no.
                PhoneAuthProvider.Instance.VerifyPhoneNumber(
                    phoneNo,
                    60,
                    TimeUnit.Seconds,
                    Activity,
                    this
                    );
                // Return response
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(true)));
            }
            catch (Exception mes)
            {
                // Return exception
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(mes.Message)));
            }
        }
예제 #2
0
        /*****************************************************************/
        // INTERFACE METHODS
        /*****************************************************************/
        #region Interface methods

        /// <summary>
        /// Sign into Firebase with phone no.
        /// </summary>
        /// <param name="callBack">Callback for PCL</param>
        /// <param name="verificationId">Verification ID used in the credential object</param>
        /// <param name="code">SMS code used in the credential object</param>
        public Task <FirebaseResponse> SignIn(IFirebaseServiceCallBack callBack, string verificationId, string code)
        {
            try
            {
                // Set callback
                FirebaseServiceCallBack = callBack;
                // Create credential object
                SignIn(PhoneAuthProvider.DefaultInstance.GetCredential(verificationId, code));
                // Return response
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(true)));
            }
            catch (Exception mes)
            {
                // Return exception
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(mes.Message)));
            }
        }
예제 #3
0
        /// <summary>
        /// Verify phone no.
        /// </summary>
        /// <param name="callBack">Callback for PCL</param>
        /// <param name="phoneNo">Phone no. to verify</param>
        /// <returns>A firebase response</returns>
        public Task <FirebaseResponse> VerifyPhoneNo(IFirebaseServiceCallBack callBack, string phoneNo)
        {
            this.FirebaseServiceCallBack = callBack;

            try
            {
                // Check if phone no. is white listed
                WhiteListedPhoneNo = FirebaseService.CheckForTestPhoneNo(phoneNo);
                // Verify phone no.
                PhoneAuthProvider.DefaultInstance.VerifyPhoneNumber(
                    phoneNo,
                    null,
                    (verificationId, error) =>
                {
                    if (error != null)
                    {
                        FirebaseServiceCallBack?.OnVerificationFailed(error.LocalizedDescription);
                        return;
                    }
                    else
                    {
                        // Save verification ID for future use
                        App.LocalDataService.SaveValue(nameof(LocalDataKeys.FirebaseAuthVerificationId), verificationId);

                        if (WhiteListedPhoneNo != null)
                        {
                            var response = SignIn(FirebaseServiceCallBack, verificationId, WhiteListedPhoneNo.Code).Result;
                            if (!response.Success)
                            {
                                FirebaseServiceCallBack?.OnVerificationFailed(response.ErrorMessage);
                            }
                        }
                        FirebaseServiceCallBack?.OnCodeSent(verificationId);
                    }
                }
                    );
                // Return response
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(true)));
            }
            catch (Exception mes)
            {
                // Return exception
                return(new Task <FirebaseResponse>(() => new FirebaseResponse(mes.Message)));
            }
        }