Parse.com includeKey,包括包含相关对象

时间:2014-06-11 07:56:41

标签: rest associations parse-platform relationships

我的_User表中有两个数组:hasCreated和isMemberOf,它们包含属于Group表的组对象。

当我发布到组时,它会按预期发生,但是当我用

获取用户时
includeKey=isMemberOf&hasCreated

我得到以下内容:

hasCreated: [
    {
        __type: Object,
        className: Group,
        createdAt: 2014 - 06 - 04T18: 59: 02.325Z,
        createdById: abc,
        …
    }
    {
        __type: Pointer,
        className: Group,
        objectId: def
    }
    {
        __type: Pointer,
        className: Group,
        objectId: ghi
    }]
isMemberOf: [
    {
        __type: Object,
        className: Group,
        createdAt: 2014 - 06 - 04T18: 59: 02.325Z,
        createdById: abc,
        …
    }
    {
        __type: Pointer,
        className: Group,
        objectId: def
    }
    {
        __type: Pointer,
        className: Group,
        objectId: ghi
    }]

所以基本上,我只是完全取回了三个组中的一个,而且_type字段也是不同的。以下是我在User表中hasCreated和isMemberOf数组字段中的内容:

[{
    "__type": "Pointer",
    "className": "Group",
    "objectId": "abc"
}, {
    "__type": "Pointer",
    "className": "Group",
    "objectId": "def"
}, {
    "__type": "Pointer",
    "className": "Group",
    "objectId": "ghi"
}]

我做错了什么?我需要为每个组获取完整的对象。请指教!谢谢!

1 个答案:

答案 0 :(得分:1)

您创建的解析数据将仅为您提供其他用户的指针。因此,为了获取其他用户的数据,您必须保存从您触发的查询中获得的那些指针或objectId。然后你可以使用那些objectId或指针再次触发查询来获取其他成员的数据。所以我说你可以创建另一个接受指针或数组(包含objectId' s)作为参数的函数,并且在该函数中你可以根据objectId触发查询来获取数据,并且在获得详细信息的同时,您可以使用该数据填充视图。 - walle84 41分钟前

但我担心的是,由于您的对象列表很长,因此需要花费很长时间才会影响您查看,因为它不会让您更新它直到它完成或可能崩溃。因此,为了使您的视图更新,您可以使用调度方法在不同的线程中运行这些查询,就像并行线程一样但不在主线程上。这样用户就可以与视图进行交互,也可以适当地处理视图,就像不让它崩溃一样。有关建议直到详细信息填充,您可以显示活动指示器或进度条。对您的应用程序使用情况不太了解或感觉看 - walle84 38分钟前