機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。
NCMBMania/ncmb_deno: deno用のSDKです
今回はサブクエリの使い方です。クエリの基本的な使い方はこちらのクエリオペランドに関する記事をご覧ください。この記事ではさらに詳細なデータ検索を可能にするサブクエリの使い方を紹介します。
- インストール方法
- 初期化
- ロールの作成
- ロールの削除
- ロールにユーザを追加する
- ロールに子ロールを追加する
- ロールを検索する
- ロールに紐付くユーザを取得する
- ロールに紐付くロールを取得する
- 注意点
- まとめ
インストール方法
インストールは普段使っているnpmやYarnで可能です。
npm install ncmb_ts -S
初期化
初期化は次のように行います。
// Node.jsの場合 import NCMB, { NCMBUser, NCMBQuery } from 'ncmb_ts' // denoの場合 import NCMB, { NCMBUser, NCMBQuery } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/deno/ncmb.ts' const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')
ロールの作成
ロールの作成は NCMBRole を使います。
const role = new NCMBRole; role .set('roleName', 'admin'); await role.save();
ロールの削除
ロールの削除は delete を使います。
await role.delete();
ロールにユーザを追加する
ロールに紐付くユーザを追加する場合には addUser を使います。
const user = new NCMBUser; user .set('userName', 'tester') .set('password', 'tester'); await user.signUpByAccount(); await role .addUser(user) .save();
ロールに子ロールを追加する
ロール下で管理するロールを追加する場合には addRole を使います。
await role .addRole(role2) .save();
ロールを検索する
ロールは query
で取得できるNCMBQueryを利用します。
const query = NCMBRole.query(); const role2 = (await query .equalTo('roleName', roleName) .fetch() as NCMBRole;
ロールに紐付くユーザを取得する
特定のロールに紐付くユーザを取得する場合には fetchUser を使います。
await role .fetchUser()
ロールに紐付くロールを取得する
特定のロールに紐付くロールを取得する場合には fetchRole を使います。
await role .fetchRole()
注意点
ロールもデータストアのオブジェクトと同様にACLで管理されます。権限がない場合、fetchUserやfetchRoleを実行しても結果は返ってきませんので注意してください。
まとめ
ロールを使うことでデータを詳細、セキュアに管理できます。不正アクセスなどを防止するためにも、ロールを適切に運用してください。