Android4.4+Parse.com查询指针数组
Android 4.4 + Parse.com query array of pointers
指针数组中的有线解析查询无法在下面的 4.4 上运行,但在 5 + 上一切正常,
ParseQuery<ParseObject> firstQuery = new ParseQuery<ParseObject>(CLASSNAME);
firstQuery.whereEqualTo(COLOUMNNAME1, ParseUser.getCurrentUser());
ParseQuery<ParseObject> secondQuery = new ParseQuery<ParseObject>(CLASSNAME);
secondQuery.whereEqualTo(COLOUMNNAME2, ParseUser.getCurrentUser());
List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>();
queries.add(firstQuery);
queries.add(secondQuery);
ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries);
第二个查询是解析用户指针的数组。
注意:在Android 5 return 中的所有匹配数据。
在 Android 4.4 return 中,所有匹配的数据仅在第一个查询中。
从 5 天前开始似乎已经修复了此问题,但没有其他反馈表明它有效:https://github.com/parse-community/parse-server/issues/175
确保您使用的是最新的解析服务器,也许它会起作用。
除此之外,还提供了两种解决方案:
1) 重构您的代码以存储 objectId 数组而不是指针。这没有坏。
2) 重构您的代码,而不是调用 whereEqualTo
,而是调用 whereContainsAll
,并传递一个包含您需要的指针的元素数组。这个功能似乎没有坏。
指针数组中的有线解析查询无法在下面的 4.4 上运行,但在 5 + 上一切正常,
ParseQuery<ParseObject> firstQuery = new ParseQuery<ParseObject>(CLASSNAME);
firstQuery.whereEqualTo(COLOUMNNAME1, ParseUser.getCurrentUser());
ParseQuery<ParseObject> secondQuery = new ParseQuery<ParseObject>(CLASSNAME);
secondQuery.whereEqualTo(COLOUMNNAME2, ParseUser.getCurrentUser());
List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>();
queries.add(firstQuery);
queries.add(secondQuery);
ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries);
第二个查询是解析用户指针的数组。
注意:在Android 5 return 中的所有匹配数据。 在 Android 4.4 return 中,所有匹配的数据仅在第一个查询中。
从 5 天前开始似乎已经修复了此问题,但没有其他反馈表明它有效:https://github.com/parse-community/parse-server/issues/175
确保您使用的是最新的解析服务器,也许它会起作用。
除此之外,还提供了两种解决方案: 1) 重构您的代码以存储 objectId 数组而不是指针。这没有坏。
2) 重构您的代码,而不是调用 whereEqualTo
,而是调用 whereContainsAll
,并传递一个包含您需要的指针的元素数组。这个功能似乎没有坏。