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

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

Java用NCMB SDKを開発しています(ACLの使い方)

f:id:mbaasdevrel:20190318155501p:plain

NCMBではJavaを使ったSDKをAndroid SDKとして提供しています。これはデバイストークンの取得機能など、Androidの関連付いて作られています。同じJavaではありますが、サーバサイドで利用することはできません。

ここでは現在開発中のJava用SDK(非公式)の使い方を紹介します。今回はACL用のクラス、NCMBAclの使い方を解説します。

データストアへの指定

なるべくAndroid用のSDKと合わせる形で実装しています。ncmb.NCMBAcl で作成して、ACLの条件を指定してください。

NCMBObject hello = ncmb.NCMBObject("AclTest");
hello.put("message", "Hello World");
NCMBAcl acl = ncmb.NCMBAcl();
acl.setPublicReadAccess(true);
acl.setPublicWriteAccess(false);
acl.setRoleReadAccess("admin", true);
hello.setAcl(acl);
hello.save();

取り出す際には getAcl を使います。toJsonでJSONObjectが返ってきます。

NCMBQuery Query = ncmb.NCMBQuery("AclTest");
Query.limit(1);
ArrayList<NCMBObject> ary = Query.find();
NCMBObject hello = ary.get(0);
NCMBAcl acl = hello.getAcl();
System.out.println(acl.toJson().toString());
// {"role:admin":{"read":true},"*":{"read":true}}

利用できる条件について

条件は下記が利用できます。これもAndroid用のSDKと合わせています。

  • setPublicReadAccess(Boolean bol);
  • setPublicWriteAccess(Boolean bol);
  • setRoleReadAccess(String role, Boolean bol);
  • setRoleWriteAccess(String role, Boolean bol);
  • setUserReadAccess(NCMBUser user, Boolean bol);
  • setUserWriteAccess(NCMBUser user, Boolean bol);

注意

これに伴って、NCMBObjectはデフォルトで公開読み書きが可能な状態で作成されます(mBaaS自体の仕様です)。誰でも読み書きできる状態になりますので、適宜ACLを設定した上で保存を行ってください。

コードについて

コードはNCMBMania/java-sdkにて公開しています。ライセンスはMIT Licenseになります。

まとめ

サーバからファイルをアップロードしたり、mBaaS上にあるファイルをダウンロードするのに使えるかと思います。まだACLには対応していませんが、近く対応します。

中津川 篤司

中津川 篤司

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