通过指针获取解析对象

Posted

技术标签:

【中文标题】通过指针获取解析对象【英文标题】:Getting Parse Objects via pointers 【发布时间】:2016-01-25 14:22:24 【问题描述】:

我正在尝试获取一个包含指向Restaurant 的指针的Reservation 对象。

在 Parse Cloud 代码中,我可以在 response.success 之前的日志中通过 query.include('Restaurant') 获取与 Reservations 关联的餐馆对象。但是,当我在客户端应用程序上收到响应时,Restaurants 恢复为指针。

按照一些答案的建议,我尝试将 JSSDK 版本恢复为 1.4.21.6.7,但这对我不起作用。

Parse.Cloud.define('getreservationsforuser', function(request, response) 
    var user = request.user

    console.log(user)

    var query = new Parse.Query('Reservations')

    query.equalTo('User', user)

    query.include('Restaurant')

    query.find(
        success : function(results) 
            console.log(JSON.stringify(results))
            response.success(results)
        ,
        error : function (error) 
            response.error(error)
        
    )
)

回复:

..."restaurant":"__type":"Pointer",
              "className":"Restaurants",
               "objectId":"kIIYe7Z0tD",...

【问题讨论】:

【参考方案1】:

即使您已将指针对象包含在内,您也不能直接从云代码中发回指针对象。您需要手动将该指针对象的内容复制到 javascript 对象。如下:

var restaurant = 
restaurant["id"] = YOUR_POINTER_OBJECT.id;
restaurant["createdAt"] = YOUR_POINTER_OBJECT.createdAt;
restaurant["custom_field"] = YOUR_POINTER_OBJECT.get("custom_field");

ps:在您的代码中,除了直接发回响应之外,您似乎什么也不做。我认为在这种情况下解析 REST api 可能是一个更好的选择。

【讨论】:

您能否提供更多详细信息?当它是预定义类型Parse.Object 时,如何将它们包含在解析对象中?我无法理解您的回答,因为它不会用它创建 Parse 对象。 REST Api 如何成为更好的选择?任何参考/示例?【参考方案2】:

事实证明我的代码实现是正确的。

【讨论】:

以上是关于通过指针获取解析对象的主要内容,如果未能解决你的问题,请参考以下文章

通过指针解析排序查询

查询解析以获取对象的状态

解析restapi“where”对象ID不在指针数组中

指针和字符串

在通过改造获取对象数组时,错误无法解析方法

获取双指针指向的对象