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 を継承しています。そのため Save
や Delete
など、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になります。
まとめ
ロールを使うことで権限管理が容易になります。管理者グループや、決済済みのユーザグループなどを作ることで、コンテンツの出し分けも容易になるでしょう。絞り込み条件として使えるので、上手に使いこなしてください。