LoginSignup
3
1

More than 1 year has passed since last update.

【Playfab】CloudScript内でサーバー内にデータが存在するか確認する方法

Posted at

 チート対策等で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
    }
}

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1