チート対策等でPlayfabのCloudScript内でサーバー内のデータを取得することがあるだろうが、その時にKeyがなければエラーになる。そういうときのエラーハンドリング
a.Data == nullやa.Message == "Error"等では無理だったので連想配列の鍵チェックでやる
a.js
handlers.Test = function(args, context){
//Get user data
var dataRequest = {
"PlayFabId": currentPlayerId,
"Keys": "ErrorTest"
}
var serverData = server.GetUserReadOnlyData(dataRequest);
if("ErrorTest" in serverData.Data){
//鍵が存在するときの処理
}else{
log.info("Error");
//鍵が存在しないときの処理
//UpdateUserData等で作成もできるので、
//データがないからと言ってこの時点で作成するのは効率が悪そう
}
return;
}
ドキュメントではtry catchでやっているので好きなほうで
b.js
"use strict";
handlers.GenerateError = () => {
try {
server.GetPlayerStatistics({
PlayFabId : "non-existing-player-id"
});
} catch (ex) {
let error = ex.apiErrorInfo.apiError.error; // In this case - "InvalidParams"
let errorCode = ex.apiErrorInfo.apiError.errorCode; // In this case : 1000
}
}