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

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

C#用NCMB SDK(非公式)の使い方(ロール)

f:id:mbaasdevrel:20200710131602p:plain

XamarinはC#を使ったクロスプラットフォームなスマートフォンアプリ開発環境です。企業向けのアプリ開発などで利用されることが多いようです。

NCMBではC#を使った開発環境としてUnityに対応しています。しかし、そちらはiOS/Android SDKをラッピングしているので、Xamarinでそのまま利用できません。C#のみで実装する必要があります。

ここでは現在開発中のC#用SDK(コミュニティSDK)の使い方を紹介します。今回はロールの使い方について解説します。

インストールについて

C# SDKはNuGetで公開していますので、Visual Studioなどでインポートできます。

使い方

使い方はまず、NCMBClientを読み込みます。

using NCMBClient;

初期化

初期化は次のようにします。アプリケーションキー、クライアントキーは自分のものに変更してください。

var applicationKey = "70d...934";
var clientKey = "4d0...dff";

new NCMB(applicationKey, clientKey);

初期化さえ終われば、次のようなオブジェクトが利用できます。

  • NCMBObject
    データストアのオブジェクト
  • NCMBQuery
    データストア、会員管理、ロール、Installation、ファイルストア検索用
  • NCMBAcl
    権限管理用
  • NCMBUser
    会員管理用
  • NCMBRelation
    データストアのリレーション

ロールの保存

ロールは NCMBObject を継承しています。そのため SaveDelete など、NCMBObject で利用できるメソッドがそのまま利用できます。

var role = new NCMBRole();
role.Set("roleName", "admin");
role.Save();
role.Delete();

子ロールの追加

ロールは入れ子構造にできます。ロールにロールを追加するコードは次のようになります。

var role1 = new NCMBRole();
role1.Set("roleName", "role1");
role1.Save();
Assert.NotNull(role1.Get("objectId"));

var role2 = new NCMBRole();
role2.Set("roleName", "role2");
role2.Save();
Assert.NotNull(role1.Get("objectId"));

role1.AddRole(role2).Save();

あるロールの管理下にあるロール一覧を取得する際には、次のようにコードを書きます。

var roles = role1.FetchRole();

子ロールの削除

子ロールを削除する際には RemoveRole を利用します。

role1
  .RemoveRole(role2)
  .Save();

ユーザをロールに追加

あるロールにユーザを追加する場合には次のように書きます。

role
  .AddUser(user1)
  .AddUser(user2)
  .Save();

ロールに所属するユーザ一覧を取得する

あるロールに所属するユーザを一覧で取得するには、次のように書きます。

var users = role.FetchUser();

ユーザをロールから削除

ロールから削除する場合には次のように書きます。

role
  .RemoveUser(user1)
  .Save();

注意点

ロールやユーザの一覧を取得する際には、読み込み権限が必要になるので注意してください。同様に追加して保存する際には、該当のロールに対する書き込み権限が必要になります。

コードについて

コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。

まとめ

ロールを使うことで権限管理が容易になります。管理者グループや、決済済みのユーザグループなどを作ることで、コンテンツの出し分けも容易になるでしょう。絞り込み条件として使えるので、上手に使いこなしてください。

中津川 篤司

中津川 篤司

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