スマートフォンアプリは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を使うことで、データ管理を適切に行えるようになります。使い方は簡単なので、ぜひ使いこなしてください。