@@ -263,51 +263,19 @@ class ParseLiveList<T extends ParseObject> {
263263 final List <Future <void >> loadingNodes = < Future <void >> [];
264264
265265 for (String key in paths.keys) {
266- ParseObject ? keyInObject = object.get <ParseObject >(key);
267- if (keyInObject != null ) {
266+ if (object.containsKey (key)) {
268267 ParseObject ? includedObject = object.get <ParseObject >(key);
269268 if (includedObject != null ) {
270269 //If the object is not fetched
271270 if (! includedObject.containsKey (keyVarUpdatedAt)) {
272271 //See if oldObject contains key
273- if (oldObject != null ) {
274- ParseObject ? keyInOld = oldObject.get <ParseObject >(key);
275- if (keyInOld != null ) {
276- includedObject = keyInOld;
277-
278- //If the object is not fetched || the ids don't match / the pointer changed
279- if (! includedObject.containsKey (keyVarUpdatedAt) ||
280- includedObject.objectId != keyInObject.objectId) {
281- includedObject = keyInObject;
282- //fetch from web including sub objects
283- //same as down there
284- final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
285- ParseObject >(ParseObject (includedObject.parseClassName))
286- ..whereEqualTo (keyVarObjectId, includedObject.objectId)
287- ..includeObject (_toIncludeStringList (paths[key]));
288- loadingNodes.add (queryBuilder
289- .query ()
290- .then <void >((ParseResponse parseResponse) {
291- List <dynamic >? results = parseResponse.results;
292- if (parseResponse.success &&
293- results != null &&
294- results.length == 1 ) {
295- // ignore: deprecated_member_use_from_same_package
296- object[key] = results[0 ];
297- }
298- }));
299- continue ;
300- } else {
301- // ignore: deprecated_member_use_from_same_package
302- object[key] = includedObject;
303- //recursion
304- loadingNodes
305- .add (_loadIncludes (includedObject, paths: paths[key]));
306- continue ;
307- }
308- } else {
272+ ParseObject ? keyInOld = oldObject? .get <ParseObject >(key);
273+ if (keyInOld != null ) {
274+ //If the object is not fetched || the ids don't match / the pointer changed
275+ if (! keyInOld.containsKey (keyVarUpdatedAt) ||
276+ includedObject.objectId != keyInOld.objectId) {
309277 //fetch from web including sub objects
310- //same as up there
278+ //same as down there
311279 final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
312280 ParseObject >(ParseObject (includedObject.parseClassName))
313281 ..whereEqualTo (keyVarObjectId, includedObject.objectId)
@@ -319,12 +287,36 @@ class ParseLiveList<T extends ParseObject> {
319287 if (parseResponse.success &&
320288 results != null &&
321289 results.length == 1 ) {
322- // ignore: deprecated_member_use_from_same_package
323290 object[key] = results[0 ];
324291 }
325292 }));
326293 continue ;
294+ } else {
295+ includedObject = keyInOld;
296+ object[key] = includedObject;
297+ //recursion
298+ loadingNodes
299+ .add (_loadIncludes (includedObject, paths: paths[key]));
300+ continue ;
327301 }
302+ } else {
303+ //fetch from web including sub objects
304+ //same as up there
305+ final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
306+ ParseObject >(ParseObject (includedObject.parseClassName))
307+ ..whereEqualTo (keyVarObjectId, includedObject.objectId)
308+ ..includeObject (_toIncludeStringList (paths[key]));
309+ loadingNodes.add (queryBuilder
310+ .query ()
311+ .then <void >((ParseResponse parseResponse) {
312+ List <dynamic >? results = parseResponse.results;
313+ if (parseResponse.success &&
314+ results != null &&
315+ results.length == 1 ) {
316+ object[key] = results[0 ];
317+ }
318+ }));
319+ continue ;
328320 }
329321 }
330322 } else {
0 commit comments