- 프로젝트명 : 아레테
- 오류내용 : UpdateUserScore() 사용 / rank not found 에러 나옴.
랭킹 등록을 하려합니다.
랭킹 점수 계산을 위한 테이블 "IFdungeonRank"를 만들어두고 "highestStage"을 랭킹 기준으로 설정했습니다.
“IFdungeonRank” 테이블에는 정상적으로 등록됐습니다.
그런데 등록이후 UpdateUserScore() 로 업뎃하니 rank not found 에러가 나옵니다.
아래는 제코드입니다. 문제가 되는 부분이 뭔지 모르겠습니다.
rawIndate도 정상입니다.
// RANK
// https://developer.thebackend.io/unity3d/guide/uRanking/user/getRankTable/
private const string tableName = "IFdungeonRank";
private const string rankingUUID = "fe8ffa20-1db6-11ec-83a0-77f4e266a1f3";
private string rowIndate = string.Empty;
public void Upload_MyRankData(RankData myRankData)
{
Param param = new Param();
param.Add("HighestStage", 5);
param.Add("NickName", myRankData.NickName);
var bro = Backend.GameData.Get(tableName, new Where());
if (bro.IsSuccess())
{
if (bro.FlattenRows().Count > 0)
rowIndate = bro.FlattenRows()[0]["inDate"].ToString();
else
{
var bro2 = Backend.GameData.Insert(tableName, param);
if (bro2.IsSuccess())
rowIndate = bro2.GetInDate();
else
Binder.GPGSManager.NetworkErrorPopupPanel.Open(bro2.GetMessage());
}
}
else
Binder.GPGSManager.NetworkErrorPopupPanel.Open(bro.GetMessage());
if (rowIndate == string.Empty)
{
Binder.GPGSManager.NetworkErrorPopupPanel.Open("rowIndate is empty.");
return;
}
Debug.LogError("rowIndate : " + rowIndate);
Param rankParam = new Param();
rankParam.Add("score", 5);
Dictionary<string, string> extraInfoDic = new Dictionary<string, string>();
extraInfoDic.Add("Level", myRankData.Level.ToString());
extraInfoDic.Add("GolemIndex", myRankData.GolemIndex.ToString());
extraInfoDic.Add("HighestStage", myRankData.HighestStage.ToString());
for (int i = 0; i < 6; i++)
extraInfoDic.Add($"Relic{i + 1}", myRankData.RelicStacks[i].ToString());
for (int i = 0; i < 4; i++)
extraInfoDic.Add($"Skill{i + 1}", myRankData.SkillIndexes[i].ToString());
extraInfoDic.Add("SupportIndex", myRankData.SupportIndex.ToString());
extraInfoDic.Add("PlayerSkinIndex", myRankData.PlayerSkinIndex.ToString());
extraInfoDic.Add("NickName", myRankData.NickName);
rankParam.Add("extraData", extraInfoDic);
var rankBro = Backend.URank.User.UpdateUserScore(rankingUUID, tableName, rowIndate, rankParam);
if (!rankBro.IsSuccess())
Binder.GPGSManager.NetworkErrorPopupPanel.Open("UpdateUserScore() / " + rankBro.GetMessage());
}