본문 바로가기

Unity/뒤끝

[뒤끝 파헤치기] #04. 유저 정보 생성,수정

반응형

해당 강의는 PC환경에 최적화 된 글 입니다.

목록 바로가기

https://cheolmini.tistory.com/53

 

[뒤끝 파헤치기] #04. 유저 정보 생성,수정

뒤끝 파헤치기 네번째 강의글 입니다.

 

동기, 비동기식으로 유저의 정보를 읽어오고 닉네임과 이메일을 수정해볼 것입니다.


1. 전역변수

    [Header("User Info")]
    public InputField Nickname;
    public InputField email;
    public Text userInfo;

2. 에러 함수(기존 함수에서 수정)

    void Error(string errorCode, string type)
    {
        if (errorCode == "DuplicatedParameterException")
        {
            if (type == "UserFunc") print("중복된 사용자 아이디 입니다.");
            else if (type == "UserNickname") print("중복된 닉네임 입니다.");
        }
        else if (errorCode == "BadUnauthorizedException")
        {
            if (type == "UserFunc") print("잘못된 사용자 아이디 혹은 비밀번호 입니다.");
        }
        else if (errorCode == "UndefinedParameterException")
        {
            if (type == "UserNickname") print("닉네임을 다시 입력해주세요");
        }
        else if (errorCode == "BadParameterException")
        {
            if (type == "UserNickname") print("닉네임 앞/뒤 공백이 있거나 20자 이상입니다.");
        }
    }


동기 방식


1. 유저 정보 가져오기

Backend.BMember.GetUserInfo ();

 

유저의 정보를 JSON 형식으로 가져옵니다.

 

{
    row:
    {
        nickname : "jake", // 닉네임 (설정하지 않은경우 : null)
        inDate : "2018-07-24T07:44:36.708Z", // 유저 식별키인 inDate
        subscriptionType: "customSignUp", // userType (customSignUp / facebook / google)
        emailForFindPassword: "innovation@thebackend.io" // 비밀번호 리셋 이메일 (설정하지 않은경우 : null)
    }
}

 

row 요소 안에 우리가 원하는 요소들이 있습니다. 

 

이것을 가공해서 원하는 값만 빼오는 과정이 필요합니다.

 

추후 다른 강의에서도 쓰이는 곳이 많기 떄문에 알아두시면 편할것입니다.

 

먼저 JSON 형태로 값을 리턴 받고 이것의 row 값만 JSON에 담아줍니다.

 

그 후 각 요소별 값만 가져오도록 합니다.

 

    public void getUserInfo()
    {
        BackendReturnObject BRO = Backend.BMember.GetUserInfo();

        JsonData returnJson = BRO.GetReturnValuetoJSON()["row"];

        userInfo.text = "nickName : " + returnJson["nickname"] +
                        "\ninDate : " + returnJson["inDate"].ToString() +
                        "\nsubscriptionType : " + returnJson["subscriptionType"].ToString() +
                        "\nemailForFindPassword : " + returnJson["emailForFindPassword"];
    }

 

2. 유저 닉네임 생성 및 업데이트

Backend.BMember.CreateNickname ( "thebackend" );

Backend.BMember.UpdateNickname ( "thebackend" );

 

매개변수로 입력한 값이 닉네임으로 설정됩니다.

 

 // 동기 방식 유저 닉네임 생성
    public void CreateUserNickname()
    {
        BackendReturnObject BRO = Backend.BMember.CreateNickname(Nickname.text);

        if (BRO.IsSuccess()) print("동기 방식 닉네임 생성 완료");
        else Error(BRO.GetErrorCode(), "UserNickname");
    }

    // 동기 방식 유저 닉네임 업데이트
    public void UpdateUserNickname()
    {
        BackendReturnObject BRO = Backend.BMember.UpdateNickname(Nickname.text);

        if (BRO.IsSuccess()) print("동기 방식 닉네임 업데이트 완료");
        else Error(BRO.GetErrorCode(), "UserNickname");
    }

 

3. 유저 이메일 업데이트

Backend.BMember.UpdateCustomEmail ( "help@thebackend.io" );

 

매개변수로 입력한 값이 이메일로 설정이 됩니다.

 

    public void UpdateEmail()
    {
        BackendReturnObject BRO = Backend.BMember.UpdateCustomEmail(email.text);

        if (BRO.IsSuccess()) print("동기 방식 이메일 등록 완료");        
    }


비동기 방식


1. 유저 정보 가져오기

BackendAsyncClass.BackendAsync(Backend.BMember.GetUserInfo, ( callback ) => { // 이후 처리 });

 

    public void getUserInfoAsync()
    {
        BackendAsyncClass.BackendAsync(Backend.BMember.GetUserInfo, (callback) =>
        {
            JsonData returnJson = callback.GetReturnValuetoJSON()["row"];

            userInfo.text = "nickName : " + returnJson["nickname"] +
                            "\ninDate : " + returnJson["inDate"].ToString() +
                            "\nsubscriptionType : " + returnJson["subscriptionType"].ToString() +
                            "\nemailForFindPassword : " + returnJson["emailForFindPassword"];
        });
    }

 

2. 유저 닉네임 생성 및 업데이트

BackendAsyncClass.BackendAsync(Backend.BMember.CreateNickname, "thebackend", ( callback ) => { // 이후 처리 }); BackendAsyncClass.BackendAsync(Backend.BMember.UpdateNickname, "thebackend", ( callback ) => { // 이후 처리 });

 

    // 비동기 방식 유저 닉네임 생성
    public void CreateUserNicknameAsync()
    {
        BackendAsyncClass.BackendAsync(Backend.BMember.CreateNickname, Nickname.text, (callback) =>
        {
            if (callback.IsSuccess()) print("비동기 방식 닉네임 생성 완료");
            else Error(callback.GetErrorCode(), "UserNickname");
        });
    }

    // 비동기 방식 유저 닉네임 업데이트
    public void UpdateUserNicknameAsync()
    {
        BackendAsyncClass.BackendAsync(Backend.BMember.UpdateNickname, Nickname.text, (callback) =>
        {
            if (callback.IsSuccess()) print("비동기 방식 닉네임 업데이트 완료");
            else Error(callback.GetErrorCode(), "UserNickname");
        });
    }

 

3. 유저 이메일 업데이트

BackendAsyncClass.BackendAsync(Backend.BMember.UpdateCustomEmail, "help@thebackend.io", callback => { // 이후 처리 });

 

    public void UpdateEmailAsync()
    {
        BackendAsyncClass.BackendAsync(Backend.BMember.UpdateCustomEmail, email.text, callback =>
        {
            if (callback.IsSuccess()) print("비동기 방식 이메일 등록 완료");
        });
    }

UI 구성하기

유저 정보는 한 text에 다 적었습니다.


결과

동기 방식
비동기 방식(동기 방식에서 생성한 닉네임은 중복 처리)


참고 글

https://developer.thebackend.io/unity3d/guide/bmember/nickname/

 

뒤끝 개발자

모바일 게임 서버를 쉽게 생성, 관리 할 수 있는 뒤끝의 개발자 사이트입니다.

developer.thebackend.io

https://developer.thebackend.io/unity3d/guide/bmember/userInfo/

 

뒤끝 개발자

모바일 게임 서버를 쉽게 생성, 관리 할 수 있는 뒤끝의 개발자 사이트입니다.

developer.thebackend.io


모든 프로젝트는 깃 허브에 업데이트 할 예정입니다.

 

https://github.com/CM-Games/BackEnd

읽어 주셔서 감사합니다.

 

 

더보기

검색어

뒤끝베이스

뒤끝강좌

뒤끝

뒤끝매치

뒤끝챗

유니티뒤끝

백앤드

유니티백앤드

유니티서버

유니티데이터저장

뒤끝기초

뒤끝서버

반응형