我有一個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