質問編集履歴

4 追記

meamea

meamea score 7

2017/08/24 11:28  投稿

Monaca+NiftyCloudMobileBackendでのデータストアの項目取得について
Monaca+NiftyCloudMobileBackendでのデータストア内installationクラスの項目取得+端末の項目(バッジ)更新
###前提・実現したいこと
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
document.addEventListener("resume", function(){
           setTimeout(function() {
               clearNCMBbadge();
           }, 0);
       }, false);
document.addEventListener("deviceready", clearNCMBbadge(), false);
function clearNCMBbadge(){
  var ncmb = new NCMB(MOBILE_BACKEND_APPLICATION_KEY, MOBILE_BACKEND_CLIENT_KEY);
  var Installation = ncmb.Installation;
  var installation = new Installation();
  installation.objectId = localStorage.getItem("USER_OBJECT_ID");
  installation.badge = 0;
                   
  return installation.update(function(){alert('更新完了');});
}
```
  • JavaScript

    21566 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Monaca

    1157 questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • ニフティクラウドmobile backend

    29 questions

    ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

3 追記1追加

meamea

meamea score 7

2017/08/21 18:00  投稿

Monaca+NiftyCloudMobileBackendでのデータストアの項目取得について
###前提・実現したいこと
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)  
```
  • JavaScript

    21566 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Monaca

    1157 questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • ニフティクラウドmobile backend

    29 questions

    ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

2 エラーメッセージ追加

meamea

meamea score 7

2017/08/21 16:51  投稿

Monaca+NiftyCloudMobileBackendでのデータストアの項目取得について
###前提・実現したいこと
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  
```
  • JavaScript

    21566 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Monaca

    1157 questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • ニフティクラウドmobile backend

    29 questions

    ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

1 一部追記

meamea

meamea score 7

2017/08/21 16:47  投稿

Monaca+NiftyCloudMobileBackendでのデータストアの項目取得について
###前提・実現したいこと
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);
               });
}  
```
  • JavaScript

    21566 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Monaca

    1157 questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • ニフティクラウドmobile backend

    29 questions

    ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る