FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Unity SDKでユーザにデータを設定、取得する

f:id:mbaasdevrel:20200609155631p:plain

Unity SDKのTipsです。ユーザ(NCMBUser)はNCMBObjectを継承しているのですが、使い方がいまいち分かりづらいかも知れません。そこで、今回はユーザにメタデータを追加する方法について紹介します。

結論

  • 取得時にはフィールドの存在を事前にチェックしましょう
  • 設定時はICollectionとして処理すれば大丈夫です

データの取得

NCMBUserやNCMBObjectのフィールドはICollectionで定義されています。そのため、データを取得する際には [] で行えます。

NCMBUser currentUser = NCMBUser.CurrentUser;
UnityEngine.Debug.Log(currentUser["displayName"]);

ただし、該当フィールドが存在しないとエラーになってしまいます。取得時には必ず ContainsKey で存在しているか確認しましょう。

if (currentUser.ContainsKey("displayName")) {
    UnityEngine.Debug.Log ("displayName がありました" + currentUser["displayName"]);
} else {
    UnityEngine.Debug.Log ("displayName はありません");
}

データの設定

データの取得は [] でアクセスします。これはフィールドの存在は関係なく使えます。

currentUser["displayName"] = "Atsushi";

まとめ

データの取得時に毎回ContainsKeyを実行するのは面倒なので、関数を使ってデフォルト値を返すようにしてもよさそうです。未チェックでアクセスするのはエラーにつながる恐れがあるので止めておきましょう。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。