【问题标题】:Add data to objects via cloud code通过云代码向对象添加数据
【发布时间】:2016-01-07 11:29:26
【问题描述】:

在 Cloud 代码中,我创建了一个获取用户的函数,以及另一个向该用户对象添加特定值的函数。

问题是,在 Android 中,我们获取了 users 对象,但没有添加特定的值。

当我将相同的代码复制到客户端的 JS 文件中时,它可以完美运行。我得到了所有对象以及添加到它们的所有特定值。

我附上了代码 有人知道问题出在哪里吗?

Parse.Cloud.define("getAllPeople", function (request, response) {
    var currentUser = request.user;
    var numberToSkip = request.params.numberToSkip || 0;
    var isMale = request.params.isMale;
    var latitude = request.params.latitude || 32.08; //Tel Aviv
    var longitude = request.params.longitude || 34.78;
    var parseGeoPoint = new Parse.GeoPoint({latitude: latitude, longitude: longitude});

    var User = Parse.Object.extend("User");
    var queryObject = new Parse.Query(User);

    queryObject.skip(numberToSkip).limit(100)
        .equalTo('isCheckIn', true)
        .equalTo('isMale', isMale)
        //.notEqualTo('objectId', currentUser.id)
        .near('location', parseGeoPoint)
        .notEqualTo('checkInPlace', null)
        .include('checkInPlace')
        .find({
            success: function (usersInCheckIn) {
                checkUserSend(currentUser, usersInCheckIn).then(function (results) {
                        response.success(results);
                });
            },
            error: function (error) {
                console.error("Error: " + error.code + " " + error.message);
            }
        });
});

function checkUserSend(currentUser, usersInCheckIn) {
    var Matching = Parse.Object.extend("Matching");
    var queryObject = new Parse.Query(Matching);
    var promise = new Parse.Promise();

    queryObject
        .equalTo('sendUser', currentUser)
        .include('sendUser')
        .find({
            success: function (results) {
                for (var i = 0; i < results.length; i++) {
                    var current = {};
                    current.receivedUser = results[i].get('receivedUser');
                    current.isMatching = results[i].get('isMatching');
                    current.isRejected = results[i].get('isRejected');
                    for (var j = 0; j < usersInCheckIn.length; j++) {
                        if (usersInCheckIn[j].id == current.receivedUser.id) {
                            usersInCheckIn[j].sendWink = true;
                            usersInCheckIn[j].isMatching = current.isMatching;
                            usersInCheckIn[j].isRejected = current.isRejected;
                        }
                    }
                }
                console.log(usersInCheckIn);
                promise.resolve(usersInCheckIn);
            },
            error: function (error) {
                console.error("Error: " + error.code + " " + error.message);
            }
        });
    return promise;
}

【问题讨论】:

  • 你遇到了什么错误?
  • 没有错误。我得到所有用户对象,但没有值“sendWink”“isMatching”“isRejected”
  • 它一直在返回承诺,无需等待queryObject 响应
  • 你能告诉我代码应该是什么样子吗?

标签: android parse-platform parse-cloud-code


【解决方案1】:

删除return 语句并在queryObject 成功时添加response.success(usersInCheckIn); find()

function checkUserSend(currentUser, usersInCheckIn) {
var Matching = Parse.Object.extend("Matching");
var queryObject = new Parse.Query(Matching);
var promise = new Parse.Promise();

queryObject
    .equalTo('sendUser', currentUser)
    .include('sendUser')
    .find({
        success: function (results) {
            for (var i = 0; i < results.length; i++) {
                var current = {};
                current.receivedUser = results[i].get('receivedUser');
                current.isMatching = results[i].get('isMatching');
                current.isRejected = results[i].get('isRejected');
                for (var j = 0; j < usersInCheckIn.length; j++) {
                    if (usersInCheckIn[j].id == current.receivedUser.id) {
                        usersInCheckIn[j].sendWink = true;
                        usersInCheckIn[j].isMatching = current.isMatching;
                        usersInCheckIn[j].isRejected = current.isRejected;
                    }
                }
            }
            console.log(usersInCheckIn);
           // promise.resolve(usersInCheckIn);
            response.success(usersInCheckIn);
        },
        error: function (error) {
            console.error("Error: " + error.code + " " + error.message);
        }
    });
}

【讨论】:

  • 它不起作用..在 Android 端,我们没有在响应对象上获得“sendWink”、“isMatching”和“isRejected”..
猜你喜欢
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
相关资源
最近更新 更多