スマートフォンアプリはSwiftやJavaのように特定のプラットフォームで利用できるもの、そしてUnityやMonacaのように複数のプラットフォームで動作するものがあります。React Nativeは後者に属する技術です。
以前React Native用SDKを開発していたのですが、バージョンアップなどに伴って利用できなくなっていました。そこでTypeScriptに沿う形で改めてReact Native SDKを開発しはじめました。なお、これは非公式のSDKになりますので、サポート外になります。
今回はデータストアの更新やロール操作について紹介します。
利用法
セットアップ
インストールは 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は以下のように使います。まずロールに所属するユーザ(今回はログインユーザ)を用意します。
let user = new ncmb.User(); user = await ncmb.User.login('tester4', 'password');
次にロールを検索、または作成します。
let role = await ncmb.Role.equalTo('roleName', 'Admin').fetch(); if (!role) { role = new ncmb.Role(); await role .set('roleName', 'Admin') .addUser(user) .save(); }
最後に作成したロールをACLに適用します。
const acl = new ncmb.Acl(); acl .setPublicReadAccess(true) .setPublicWriteAccess(false) .setRoleWriteAccess(role, true); await hello .set('message', 'Hello world') .set('acl', acl) .save();
これでACLを指定した保存処理ができます。使い勝手はJavaScript SDKに似せています。
データの更新
データストアの更新処理に対応しました。メソッドは同じsaveです。
const Hello = ncmb.DataStore('Hello'); const hello = await Hello.equalTo('message', 'Hello world').fetch(); await hello .set('message', 'Update') .save();
このようにデータの取得、作成、更新そして削除が自由に可能です。
コード
SDKはNCMBMania/ncmb-react-native: NCMB SDK for React Nativeにて公開しています。ライセンスはMIT Licenseです。
まとめ
データストアについては位置情報や配列追加などの特殊な処理を除けばサポートされました。ぜひReact Nativeでのアプリ開発にもNCMBを活用してください!