我有一个Parse Cloud Code函数,它是一个简单查询来询问根对象并获取其子对象及其子对象(3层对象层次结构)。云端函数根据平台返回不同的结果
Set
|--> Group
|--> Item
我做这种方式,因为Set
可能已经在设备上,我无法找到一个可靠的方法,以确保我有最新的副本。 fetchInBackground...
可能工作,除非你不能做include
,我需要做的,以获得儿童/孙子女。 (我不明白为什么Parse没有添加这个功能,我不能告诉你我有多少次想说“更新这个对象,包括这些子对象”!)
无论如何,云代码函数正在工作,但产生奇怪的结果:
- 当我从REST API控制台运行查询时,我得到了所有我期望的数据。具体来说,我得到属于该集合的1
Set
,3Group
对象以及属于每个Group
的Item
对象。具体而言,Set
的第3个Group
包含67个对象。 - 当我从iOS设备(或模拟器)运行查询时,第3个
Group
始终以51Item
对象返回。有趣的是,在服务器上更新数据模型之前,此WAS为true。
因此,尽管我尽了最大的努力,似乎无法更新已固定在设备上的数据模型,以反映已在服务器上进行的更改。我有什么要求REALLY令人困惑的是,尽管调用了Cloud Code函数,但返回了设备上的数据模型。
我假设当从函数返回对象时,它会看到该对象已被固定并且不包含来自服务器的新数据。我无法弄清楚的是如何解决这个问题。我希望数据固定,因为我不想管理自己的本地数据存储(尽管我想我会在必要时)。我试过在调用云代码函数之前卸下Set
对象,但即使我同步运行unpin
调用,也不会改变结果。
我刚刚花了几个小时试图做我自己刷新序列,像这样:
- 刷新
Set
- 反复调整
Set
的Group
对象,刷新他们 - 反复调整
Item
对象每个Group
,刷新它们
虽然这似乎工作得很好该进程正在执行,一旦到达进程结束,第二和第三级数据不会保留。
我觉得这应该是一个微不足道的实现。很多人都要求这个功能。有没有人基本上想出了如何执行一个“包含获取”?
这正是我在我的问题中所描述的。当我这样做时,我找回的对象似乎被弃用在本地数据存储中的项目。 – mbm29414
您是否尝试过对象ID查询?我也会尝试重新安装应用程序(在手机上删除),看看你的LDS是否有坏的数据。 – hhanesand
是的。似乎没有办法忽略本地数据存储中已有的结果。我不能简单地做一个fetchInBackground,因为它不允许我得到孩子,尤其是大的孩子对象。 – mbm29414