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

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

NCMBを手軽に試せるプレイグラウンドの紹介【データストア編】

f:id:mbaasdevrel:20210122184110p:plain

NCMBには多彩な機能があります。データベースのようにデータを保存するデータストア、ファイルを保存するファイルストア、認証、プッシュ通知、スクリプトなどの機能が用意されています。これらの機能を使いこなせば、自由にアプリケーションを拡張できるでしょう。

そんな各種機能を手軽に試せるように、プレイグラウンドを用意しました。今回はデータストアを試せる環境です。

実際に試す

試せる環境は以下になります。データを保存(自分が好きな果物の名前を入力してください)して、さらにその表示ができます。

main.html – flat-quasar-price

データは自分だけ閲覧、更新可能なものとして保存されます。他の人が保存したデータはACL(アクセス権限)によって閲覧できません。

仕組み

このプレイグラウンドではデータストアへの保存と取得を行っています。また、前提条件として匿名認証を行っています。

匿名認証の実行

匿名認証はID、パスワードなしで認証を可能にする仕組みです。これは次のようなコードで実行されています。

try {
  if (ncmb.User.getCurrentUser()) {
    await ncmb.DataStore('Hello')
      .fetch();
    return;
  }
} catch (e) {    
}
// 匿名認証の実行
ncmb.User.loginAsAnonymous();

すでに認証済みの場合 ncmb.User.getCurrentUser() にユーザデータが返ってきます。もし認証している場合でも、セッションが有効期限切れになっている場合があります。そこでデータストアの取得処理を通じて、セッションの有効性を確認しています。

もしセッションが無効だったり、認証が行われていない場合には ncmb.User.loginAsAnonymous() を行って匿名認証を実行しています。

データストアへの保存

ここからの処理は main.html の中に記述されています。参考にしてください。

データストアへの保存処理 saveData は次のようになります。アクセス権限の設定では、ログインしているユーザ情報を取得して、 setUserReadAccesssetUserWriteAccess でユーザに対する読み込み(書き込み)権限を付与しています。

そしてデータの保存時にACLを設定して保存することで、特定のユーザ(今回はログインしているユーザ)のみ読み書きできるデータとしています。

// データ保存ボタンを押した際の処理
async function saveData() {
  const name = await ons.notification.prompt('好きな果物の名前を入力してください');
  if (name === '') return;

  // アクセス権限の設定
  const acl = new ncmb.Acl();
  const user = ncmb.User.getCurrentUser();
  acl
    .setUserReadAccess(user, true)
    .setUserWriteAccess(user, true);
  
  const SaveData = ncmb.DataStore('SaveData');
  const saveData = new SaveData;
  // 保存処理の実行
  await saveData
      .set('name', name)
      .set('acl', acl)
      .save();
  await ons.notification.alert('保存しました');
}

データの取得

データの取得処理 getData はとても簡単な処理です。以下のように呼び出すだけで、保存されているデータが返ってきます。

// NCMBからデータを取得する処理
function getData() {
  const SaveData = ncmb.DataStore('SaveData');
  return SaveData
    .fetchAll();
}

まとめ

実際に動いているコードがあると動作の確認がしやすいでしょう。他の機能向けのプレイグラウンドも作成していくので、NCMBを利用する際の参考にしてください。

main.html – flat-quasar-price

中津川 篤司

中津川 篤司

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