0

ログインを処理する Parse Cloud Code サーバー側関数を定義しようとすると、呼び出そうとすると 400 Bad Request が返されます。解析ログを見ると、「Failed with: ReferenceError: user is not defined」というエラーが記録されています。しかし、ユーザーは間違いなく定義されています!

以下は、LogIn のクラウド コードの定義です。

Parse.Cloud.define("LogIn", function(request, response)
{

    user.logIn(request.params.username, request.params.password,
    {
        success: function(user)
        {
            response.success(
            {
                "success": "Log in successful."
            });
        },
        error: function(user, error)
        {
            // We must respond with a success in order to access the
            // result of the request inside Unity.
            response.success(
            {
                "error": "Log in failed.",
                "code": error.code,
                "message": error.message
            });
        }
    });
});

Unity から、LogIn coud コード関数に対して次の呼び出しを行います。

ParseCloud.CallFunctionAsync<Dictionary<string, object>> ("LogIn", userInfo).ContinueWith (t =>
{
  etc.....
}

ユーザーsashas123とstudent123を使用してUnityから上記を呼び出すと、サーバー側の解析ログに次のエラーが記録されます。

E2014-09-26T17:06:18.001Z] v8: クラウド関数 LogIn を次のように実行しました: 入力: {"username":"sashas123","password":"test"} で失敗しました: ReferenceError: user is not defined at main. js:43:5

E2014-09-26T17:38:50.474Z] v10: クラウド関数のログインを次のように実行しました:
入力: {"username":"student123","password":"test"} で失敗しました: ReferenceError: user is not defined at main. js:43:5

次のデータ ブラウザーのスナップショットは、上記のユーザーが明確に定義されていることを示しています。

![ユーザー クラスの解析][1]

Cloud Code を介してサーバー側で user.LogIn を呼び出すことに問題はありますか、それとも Unity の問題ですか?

4

1 に答える 1

0

user.logIn は request.user.logIn である必要があるようです:)

ログインユーザーなしで関数が呼び出される可能性がある場合を処理するのが最善だと思います。

if (request.user.logIn != null)
{
    ...
}
else
{
    response.error("This function must be called with a logged in user!");
}

この助けを願っています!

于 2014-09-29T12:34:48.143 に答える