コード例 #1
0
        public async Task <(bool successful, string message)> TryPromoteAnonAccount(string userName, string email, string password)
        {
            if (!IsAnonymous)
            {
                return(false, "Only anonymous accounts can be linked.");
            }

            try
            {
                var emailCredential = EmailProvider.GetCredential(email, password);
                var newUserCred     = await _user.LinkWithCredentialAsync(emailCredential);

                if (newUserCred != null && !newUserCred.User.IsAnonymous)
                {
                    await newUserCred.User.ChangeDisplayNameAsync(userName);

                    SetUser(newUserCred);
                }
            }
            catch (FirebaseAuthException ex)
            {
                return(false, $"Unhandled error occured during linking up -> {ex.Reason}");
            }

            if (!IsAnonymous)
            {
                return(true, $"Signed in as {UserName}");
            }
            else
            {
                return(false, "Failed to link anonymous account.");
            }
        }