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