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

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

テクニカルサポートに寄せられる質問例(スクリプト編)

mBaaSではExpertユーザ向けにテクニカルサポートを提供しています。日々多くの質問が寄せられていますが、実際に使っている方でないと、どういった質問をしていいのか分かりづらいかも知れません。

そこで実際にテクニカルサポートに寄せられる質問の中で、良く寄せられるものをピックアップして紹介します。今回はスクリプトの話題です。

配信済みのプッシュ通知を削除する方法は?

次のようなスクリプトで削除できます。

// 一件のプッシュ通知を削除します
var delete_push = function(push) {
  return new Promise(function(res, rej) {
    push.delete()
      .then(function(result) {
        res(true);
      })
      .catch(function(err) {
        rej(err);
      })
  });
}
  
module.exports = function(req, res) {
  var application_key = "APPLICATION_KEY";
  var client_key = "CLIENT_KEY"
  var NCMB = require('ncmb');
  var ncmb = new NCMB(application_key, client_key);
  
  // 配信済みのプッシュ通知はstatus = 2 で検索します
  ncmb.Push.equalTo("status", 2)
    .fetchAll()
    .then(function(pushs){
      // 並列処理なのでPromiseで処理します
      var promises = [];
      for (var i in pushs) {
        promises.push(delete_push(pushs[i]));
      }
      
      // 全てのPromiseオブジェクトを並列処理します
      return Promise.all(promises);
    })
    .then(function(result){
      // 削除完了
      res.status(200).json({});
    }, function(err){
      // 削除エラー
      res.status(500).json({error: err});
    });
}

100件以上のプッシュ通知を検索するには?

skip/limitを使うことで検索するデータの箇所、量を変更できます。サンプルコードは次のようになります。

module.exports = function(req, res) {
  var application_key = "APPLICATION_KEY";
  var client_key = "CLIENT_KEY"
  var NCMB = require('ncmb');
  var ncmb = new NCMB(application_key, client_key);
  
  ncmb.Push
    .skip(1000) // 検索で読み飛ばす量
    .limit(200) // 取得する件数
    .fetchAll()
    .then(function(pushs){
      // 取得成功
      for (var i = 0; i < pushs.length; i++) {
        var object = pushs[i];
        console.log(object.message);
      }
      res.status(200).json(pushs);
    })
    .catch(function(err){
      // エラー処理
      res.status(500).json({error: err});
    });
}

スクリプトはまだ新しい機能で、使っていて疑問に感じる点は多々あるかと思います。それだけに様々な質問がテクニカルサポートに寄せられます。他にも質問がありましたらテクニカルサポートへお寄せください。