【问题标题】:PFUser Relation - Parse cloudPFUser Relation - 解析云
【发布时间】:2014-11-01 19:23:20
【问题描述】:

我正在尝试获取 User 表的 Deal 关系中的对象,以便我可以更改该特定引用的值。我正在尝试使用 PFCloud 执行此操作,因为这涉及在不登录的情况下更改用户的属性/关系。

Parse.Cloud.define("redeemDeal", function(request, response) {
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", request.params.userObjectId);
query.find({
    useMasterKey: true
}).then(function(user) {
  //Found the right user.
  //This is where the JS fails. Cant find the relation
    var dealRelation = user.relation("deals");
    var dealquery = dealRelation.query();
    dealquery.equalTo("objectId", request.params.dealObjectId);
    //trying to find the deal from the relation
    dealquery.find().then(function(deal) {
            deal.setIsRedeemed(true);
            dealRelation.add(deal);
            //Adding that deal back to the relation with redeemed as yes.
            dealRelation.save().then(function(object) {
                    response.success(dealRelation);
                },
                function(error) {
                    response.error(error);
                }
            );
        },
        function(error) {

        });
});

}); 我得到了这个错误。有人可以请教。谢谢

TestApp[72316:2635281] Error: TypeError: Object [object Object] has no method 'relation'
at main.js:12:33
at e (Parse.js:2:6486)
at Parse.js:2:5935
at Array.forEach (native)
at Object.x.each.x.forEach [as _arrayEach] (Parse.js:1:664)
at c.extend.resolve (Parse.js:2:5886)
at null.<anonymous> (Parse.js:2:6565)
at e (Parse.js:2:6486)
at Parse.js:2:7239
at g (Parse.js:2:6976) (Code: 141, Version: 1.2.18)

【问题讨论】:

    标签: ios parse-platform


    【解决方案1】:

    我假设您数据库的Deals 列中的数据类型是指针。在您对用户的初始查询中,如果您想包含存储在该指针中的对象,您应该编写:

    var query = new Parse.Query(Parse.User);
    query.equalTo("objectId", request.params.userObjectId);
    query.include("Deals");
    

    当您的查询成功返回时,这将包括Deals 对象和用户对象,这样您就不必再运行另一个查询来获得交易。您还可以在第一个查询的回调中console.log(JSON.stringify(user)); 查看实际返回的内容,以帮助更好地诊断导致错误的原因。

    【讨论】:

    • dstefanis.. 它停止给出该错误,现在给出此错误:{"code":102,"message":"field deals cannot be included because it is not a pointer to another object"} (代码:141,版本:1.2.18)并处理 ia 关系。我不想更改主表的值。只是想改变参考
    • 好的,听起来我的回答可能只适用于指针并且您正在使用关系。您是否在用户对象上尝试过console.log?它打印了什么,甚至不允许您上传文件?
    • 好吧..如果我删除关系代码..并运行它..它会在控制台中打印出用户详细信息..看起来..参考列不应该被视为一个实例。 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多