GetUserInfo와 콘솔에서 inDate 값이 다름

에러가 발생한 경우 아래 정보를 모두 제공해주시면 보다 정확한 답변이 가능합니다!

  • SDK 버전 :

  • 에러 코드 :

  • 스테이터스 코드 :

  • 에러메시지 :

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

      JsonData returnData = BRO.GetReturnValuetoJSON();
    
      if (returnData != null)
      {
          
          Debug.Log("UserInfo가 존재합니다.");
    
          JsonData row = returnData["row"];
    
          if (row.Keys.Contains("inDate"))
          {
              Debug.Log("inDate - " + row["inDate"]);
              return row["inDate"].ToString();
          }
      }
      else
      {
          Debug.Log("UserInfo가 없습니다");
      }
    
      return null;
    

    }

로 inDate를 받아와서 UserInDate 스트링변수에 넣어주고
업데이트 할 때
BackendAsyncClass.BackendAsync(Backend.GameInfo.Update, “GameData”, UserInDate, param, (callback) =>

이렇게 입력하면
case “404”:
Debug.Log(“존재하지 않는 tableName인 경우”);
에러가 뜨는데

콘솔에 보이는 inDate값을 그대로 붙여주면 정상적으로 작동합니다ㅠ

좋아요 1

안녕하세요 개발자님

userinfo에 표시되는 inDate는 유저 고유의 inDate입니다

유저의 id라고 생각하시면될 것 같습니다.

update, insert등 gameinfo에 입력하는 inDate는 테이블 고유의 inDate로

테이블의 id라고 생각하시면 될 것 같습니다.

이 두개는 별개로 다른 것이 정상입니다.

테이블 insert후 리턴되는 inDate값을 별도로 저장해두고, get함수를 통해 로드한 뒤 해당 inDate를 이용하여
테이블을 상호작용하시면 될 것 같습니다.

Insert 후에 inDate를 얻어오는건 성공했습니다 감사합니다
근데 Insert 후에 inDate를 따로 저장할 수 없으니…

Backend.GameInfo.GetPrivateContents()로 정보를 불러올 때
inDate를 얻어오고 싶은데

JsonData JsonInDate = BRO.GetReturnValuetoJSON();
Debug.Log(JsonInDate[“rows”][“inDate”][“S”]);

이렇게 찍어보면
InvalidOperationException: Instance of JsonData is not a dictionary
오류가 납니다 ㅠㅠ

Instance of JsonData is not a dictionary

해당에러는 dictionary key 참조 실패 오류입니다.

rows는 배열로 rows에서 데이터를 참조하려면

rows[0][“inDate”][“S”].ToString()

이런식으로 참조를 해보시길 바랍니다.

좋아요 1

해결되었습니다! 감사합니다 ㅎㅎㅎ
연속된 질문으로 죄송하지만 처음 Load할 때 Backend.GameInfo.GetPrivateContents()를 사용하는데
콘솔 테이블 안에 정보가 없는데도 리턴값이 rows [] 로 들어와서

void GetGameInfo(JsonData returnData)
{
    if (returnData != null)
    {
        Debug.Log("데이터가 존재합니다");
    }

}

데이터가 존재한다고 뜹니다…
CheckError 에서 “200” 해당 유저의 데이터가 테이블에 없습니다.
에서 Insert를 실행시켜주고 싶은데
유저 정보가 테이블에 올라와있는지 (첫 접속이라 Insert를 해줘야하는 상황인지)
알고 싶습니다

var bro = GetOruvateContents()의 리턴값으로

bro.Rows().Count > 0 인지 혹은 bro.GetReturnValutToJson()[“rows”].Count > 0 인지를 이용하여

테이블이 있는지 확인하시면 될 것 같습니다.

테이블이 없어도 조회에 성공했기에 200 성공으로 리턴이 되게 됩니다.

추가로

스키마 미정의 테이블의 경우 NoSql 문법에 따라 조회하여 성공하였을 때 데이터 존재 유무에 관계없이 성공으로 리턴이 됩니다.

서버에러, 클라이언트 에러 등으로 조회에 실패하였을 때에만 실패로 리턴이 되게 됩니다.

자세한 사항은 각 개발문서에 에러정보를 참고해주세요.

해결되었습니다^^ 감사합니다!!

좋아요 1