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

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

React Native用JavaScript SDKにてACLが使えるようになりました

f:id:mbaasdevrel:20180306160753p:plain

スマートフォンアプリはSwiftやJavaのように特定のプラットフォームで利用できるもの、そしてUnityやMonacaのように複数のプラットフォームで動作するものがあります。React Nativeは後者に属する技術です。

以前React Native用SDKを開発していたのですが、バージョンアップなどに伴って利用できなくなっていました。そこでTypeScriptに沿う形で改めてReact Native SDKを開発しはじめました。なお、これは非公式のSDKになりますので、サポート外になります。

今回はACLの使い方について紹介します。

利用法

セットアップ

インストールは npm で行います。

npm i ncmb-react-native -S

まずライブラリを読み込みます。

import NCMB from 'ncmb-react-native';

そして初期化します。

import config from './config.json';
const ncmb = new NCMB(config.applicationKey, config.clientKey);

ACLを使ったデータ保存

ACLは以下のように使います。

const Hello = ncmb.DataStore('Hello');
const hello = new Hello();

const user = await ncmb.User.login('tester4', 'password');

const acl = new ncmb.Acl();
acl
  .setPublicReadAccess(true)       // 全体に対して読み込み権限あり
  .setPublicWriteAccess(false)     // 全体に対して書き込み権限はなし
  .setUserWriteAccess(user, true); // 特定のユーザだけ書き込み権限あり

await hello
  .set('message', 'Hello world')
  .set('acl', acl)                 // ACL指定
  .save();

これでACLを指定した保存処理ができます。使い勝手はJavaScript SDKに似せています。

ポインター

ACLと同様の仕組みでポインターも使えるようになりました。使い方はオブジェクトを任意のカラムに指定するだけです。

const hello2 = new Hello();
await hello2
  .set('message', 'this is pointer')
  .save();
await hello
  .set('message', 'Hello world')
  .set('pointer', hello2) // ポインター
  .save();

ポインターに設定するオブジェクトはあらかじめ保存されている必要があります。

コード

SDKはNCMBMania/ncmb-react-native: NCMB SDK for React Nativeにて公開しています。ライセンスはMIT Licenseです。

まとめ

Aclを使うことで、データ管理を適切に行えるようになります。使い方は簡単なので、ぜひ使いこなしてください。

中津川 篤司

中津川 篤司

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