Parse platform 解析-在保存之前从指针获取对象?

Parse platform 解析-在保存之前从指针获取对象?,parse-platform,Parse Platform,我有一个发送到服务器的Offer对象,当这个Offer即将创建时,我需要向用户发送推送通知。要约有一个指向用户的指针,该字段称为“to” 如何从指针获取对象? Parse.Cloud.beforeSave("Request", function(request, response) { var userQuery = new Parse.Query("User") userQuery.get(request.object.get("to").id, { suc

我有一个发送到服务器的Offer对象,当这个Offer即将创建时,我需要向用户发送推送通知。要约有一个指向用户的指针,该字段称为“to”

如何从指针获取对象?

Parse.Cloud.beforeSave("Request", function(request, response) {

    var userQuery = new Parse.Query("User")

    userQuery.get(request.object.get("to").id, {
        success: function (user) {
            console.log("user: ", user);
            var installationQuery = new Parse.Query("Installation");
            installationQuery.equalTo("user", user);

            Parse.Push.send({
                where : installationQuery,
                data : {
                    alert : "HEllo"
                },
                success : function() {

                },
                error : function() {
                    console.log("error finding installation: " + error);
                }
            });
        },
        error : function (error) {
            console.log("ERRRRRRRRRR");
        }
    });

    response.success();
});

要直接回答问题,可以使用或检索对象

我假设您看到的问题是对象保存了,但是推送通知没有发生。原因是您没有在调用response.success()并返回之前等待get()完成

这里有两种方法可以调和这一点:

您的现有代码,但已将response.success()上移: Parse.Cloud.beforeSave(“请求”,函数(请求,响应){

简化为

进一步简化。如果您没有在用户中使用数据,那么您不需要获取数据来传递指向查询的指针

Parse.Cloud.beforeSave("Request", function(request, response) {
    var installationQuery = new Parse.Query("Installation");
    installationQuery.equalTo("user", request.object.get("to"));

    return Parse.Push.send({
        where : installationQuery,
        data : {
            alert : "HEllo"
        }
    }).then(function() {
        response.success();
    }, response.error);
});

要直接回答问题,可以使用或检索对象

我假设您看到的问题是对象保存了,但推送通知没有发生。原因是您没有在调用response.success()并返回之前等待get()完成

这里有两种方法可以调和这一点:

您的现有代码,但已将response.success()上移: Parse.Cloud.beforeSave(“请求”,函数(请求,响应){

简化为

进一步简化。如果您没有在用户中使用数据,那么您不需要获取数据来传递指向查询的指针

Parse.Cloud.beforeSave("Request", function(request, response) {
    var installationQuery = new Parse.Query("Installation");
    installationQuery.equalTo("user", request.object.get("to"));

    return Parse.Push.send({
        where : installationQuery,
        data : {
            alert : "HEllo"
        }
    }).then(function() {
        response.success();
    }, response.error);
});

谢谢你的回答,我相信我已经尝试了代码的最后一部分,但它不起作用,我想这是因为查询结果是空的。我回家后会再试一次,并发布回复。谢谢你的回答,我相信我已经尝试了代码的最后一部分,但它不起作用,我想这是因为查询结果是空的。我回家后会再试一次,并会发布回复。
Parse.Cloud.beforeSave("Request", function(request, response) {
    var installationQuery = new Parse.Query("Installation");
    installationQuery.equalTo("user", request.object.get("to"));

    return Parse.Push.send({
        where : installationQuery,
        data : {
            alert : "HEllo"
        }
    }).then(function() {
        response.success();
    }, response.error);
});