2016-05-06 32 views
0

クラウドコード関数がクライアントから呼び出されるたびに5回呼び出されているように見えます。複数回呼び出されたクラウドコード関数

クラウドコード -

Parse.Cloud.define('PushTest', function(request, response){ 
console.log('PushTest called'); 
var query = new Parse.Query(Parse.Installation); 
query.equalTo("username", request.params.Username); 
query.equalTo("device_type","main"); 

Parse.Push.send({ 
     where: query, 
     data: { 
      alert: "This is a test" 
     } 
    }, { 
    useMasterKey: true, 
    success: function() { 
     //push was succesful 
     console.log('Push Success'); 
    }, 
    error: function(error) { 
     //handle error 
     console.log('Push failure'); 
    } 

    }); 
}); 

クライアントコード -

 String username = ParseUser.getCurrentUser().getUsername(); 
     HashMap<String, Object> params = new HashMap<String, Object>(); 
     params.put("Username", username); 
     ParseCloud.callFunctionInBackground("PushTest", params, new FunctionCallback<Object>() { 
      public void done(Object obj, ParseException e) { 
       if (e == null) { 
        Log.d(TAG, "Parse cloud called"); 
       } else { 
        Log.d(TAG, "Parse cloud not called"); 
        Log.d(TAG, e.getMessage()); 
       } 
      } 
     }); 

私はクライアントからの関数を呼び出すたびに、私は5つのプッシュ通知ではなく、一つだけを受け取ります。私が間違ってやっていることについてのどんな考えですか?

答えて

0

たぶん、クライアントがチェックするために4(デフォルトMaxRetriesのに)いくつかのエラーが原因倍(タイムアウト?)

を、それを再試行し、ログレベル(情報未満)を設定し、SDKのログを参照して、このような場合です。 https://parse.com/docs/android/api/com/parse/Parse.html#setLogLevel(int)

ログは+ディレイ+ "ミリ秒の試行#の前に" +(attemptsMade + 1 "を、要求が待機しています。失敗した"、ライン230

PLog.i( "com.parse.ParseRequest" について設定されています));

https://github.com/ParsePlatform/Parse-SDK-Android/blob/master/Parse/src/main/java/com/parse/ParseRequest.java

このログが示す場合には、uがエラーを回避しようとしてください。

これは、自動リトライしない休憩APIによって呼び出される場合があります。 (再試行回数をsdk外で変更できるかどうかは不明)

ログが表示されない場合は、クライアントからの要求を確認してください。

これを行うには、charles-proxyを使用して、デバイスプロキシをコンピュータに設定します。

詳細(SSL)を表示するには、デバイスの認証情報をダウンロードし、コンピュータでSSLプロキシ設定を設定します。

その後、デバイスから送信されたリクエストの数を確認できます。

次に、どこに問題があるか調べてみます。

関連する問題