###前提・実現したいこと
Monaca上でプッシュ通知のバッジをアプリ起動時に初期化したい
そのため起動時(resume,deviceready)にイベントリスナーを登録し、下記関数を起動しようとしたが、値の更新の前に取得ができない。
Monaca上でJSコンポーネントncmb2.1.1をインストール済み
その他Cordova6.2.0+ncmb-push-monaca-plugin2.0.6を有効化済み
###発生している問題・エラーメッセージ
NiftyCloudMobileBackend上のデータストア内にある
Installationクラスの値をオブジェクトIDをキーにして取得(更新)したいのですが、下記参考サイトを元に書いても結果が取得できません
https://github.com/NIFTYCloud-mbaas/MonacaSegmentPushApp
http://mb.cloud.nifty.com/doc/current/datastore/basic_usage_monaca.html#/Monaca/
###該当のソースコード
※2通りの記述を書いています
function clearNCMBbadge(){ var ncmb = new NCMB(MOBILE_BACKEND_APPLICATION_KEY, MOBILE_BACKEND_CLIENT_KEY); var Installation = ncmb.DataStore("installation"); //alert(Installation.toSource()); Installation.fetchById(localStorage.getItem("USER_OBJECT_ID")) .then(function(installation){ alert("取得できたよ。"); }) .catch(function(err){ /* installation取得失敗時の処理 */ alert("installation取得に失敗しました" + err); }); var Installation = ncmb.DataStore('installation'); var installation = new Installation(); Installation.equalTo('objectId',localStorage.getItem("USER_OBJECT_ID")) .fetchAll() .then(function(installation){ alert("更新するよ。"); installation.set("badge", 0); return installation.update(); }) .then(function(installation){ alert("更新できたよ"); }) .catch(function(err){ alert('見つからないよ。'+err); }); }
###エラーメッセージ
installation取得に失敗しましたcannot GET https://mb.api.cloud.nifty.com/2013-09-01/classes/installation/XWSTB%EF%BD%8DFx70EkKrlj
追記1
NCMBのデータストアにはデータの登録はされています。
(ダッシュボードの解釈違いでしたら申し訳ありません・・・)
fetchAllを実行した場合、下記エラーメッセージが発生しました
cannot GET https://mb.api.cloud.nifty.com/2013-09-01/classes/installation(403)
追記2
最終的にプッシュ通知のバッジ初期化まで解決できたため記述しておきます。
同時にタイトルも変更いたしました。
js
1document.addEventListener("resume", function(){ 2 setTimeout(function() { 3 clearNCMBbadge(); 4 }, 0); 5 }, false); 6document.addEventListener("deviceready", clearNCMBbadge(), false); 7 8function clearNCMBbadge(){ 9 var ncmb = new NCMB(MOBILE_BACKEND_APPLICATION_KEY, MOBILE_BACKEND_CLIENT_KEY); 10 var Installation = ncmb.Installation; 11 var installation = new Installation(); 12 installation.objectId = localStorage.getItem("USER_OBJECT_ID"); 13 installation.badge = 0; 14 15 return installation.update(function(){alert('更新完了');}); 16}
回答2件
あなたの回答
tips
プレビュー