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

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

React Native SDKがACLに対応しました

f:id:mbaasdevrel:20180306160753p:plain データストアを安全に保つために必要なのがACL(アクセスコントロール)です。NCMBでは以下の3つのACLに対応しています。

  • 全体に対する読み込み、書き込み権限
  • 特定のロール(グループ)に対する読み込み、書き込み権限
  • 特定のユーザに対する読み込み、書き込み権限

現在作成中の非公式なReact Native SDKでもAclに対応しました。

使い方

初期化は次のように行います。JavaScript SDKと同じ方式です。

import NCMB from 'react-native-ncmb';

const applicationKey = 'YOUR_APPLICATION_KEY';
const clientKey = 'YOUR_CLIENT_KEY';
const ncmb = new NCMB(applicationKey, clientKey);

データストアのクラスを作成

次にクラスの作成です。これもJavaScript SDKと同じ形にしています。

const Item = ncmb.DataStore('ReactNative');

インスタンスの作成

データストアのインスタンスを作成する処理はJavaScript SDKとちょっと異なるので注意してください。

const item = Item.new;

Aclの設定

ここでようやくAclが使えます。

const acl = new ncmb.Acl();

用意されているのは以下のメソッドです。

  • setPublicReadAccess
  • setPublicWriteAccess
  • setRoleReadAccess
  • setRoleWriteAccess
  • setUserReadAccess
  • setUserWriteAccess

使い方はJavaScript SDKと変わりません。

const Item = ncmb.DataStore('ReactNative');
const item = Item.item();
const acl = new ncmb.Acl();
acl.setPublicReadAccess(true)
  .setPublicWriteAccess(true)
  .setRoleReadAccess('Pro', true)
  .setUserReadAccess(user, true);
item
  .set('msg', 'Hello World')
  .set('test', 'Hoge')
  .set('acl', acl)
  .save()
  .then((data) => {
  })

認証の変更

また、これに伴って認証が少し変わっています。JavaScript SDKに合わせた実装になっています。以下は会員登録です。

const userName = 'reactTest';
const password = 'reactTest';

const user = new ncmb.User();
user
  .set('userName', userName)
  .set('password', password)
  .signUpByAccount()
  .then((user) => {
    console.log('user', user);
  }, (err) => {
    console.log(err)
  })

ログインです。

ncmb.User
  .login(userName, password)
  .then((user) => {
  });

まとめ

これでデータストアの基本的なCRUD操作とAcl、認証、プッシュ通知に対応しました。React Nativeアプリでもニフクラ mobile backendを活用してください。ドキュメントも不足していますので、ぜひフィードバックいただければ嬉しいです。

コードは NCMBMania/react-native-ncmb: Use Nifty mobile backend 's REST API to correspond to React Native にあります。機能要望があればIssueまでお寄せください。オリジナルを開発したsatsuki0221 (yugo)に感謝します!

中津川 篤司

中津川 篤司

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