gpt4 book ai didi

Android:查询多个类的ParseQueryAdapter

转载 作者:行者123 更新时间:2023-11-30 02:44:50 24 4
gpt4 key购买 nike

这是我提出的第一个问题,希望有人能帮助我。我环顾四周,发现关于这个主题的任何内容都对我的情况没有帮助,这就是为什么我求助于发布帮助请求。

我有一个包含以下的 parse.com 数据库设置:

用户关注者项目

Followers 包含两列 followerfollowing 以跟踪哪个用户正在关注哪个用户。

Items 包含一个author 列,它是一个指向User 对象的指针。

我的目标是查询将返回 Items 对象的 ParseQueryAdapter。我现在必须访问Items 的路径是查询Followers 类以获取当前用户正在关注的用户 列表。然后使用这些用户对象作为指针查询 Items 类以查找关注的用户创建的项目。

这是一个图表:

Followers

follower following
------- ---------
UserA UserB
UserB UserC
UserB UserA


Items

author column1 column2
------ ------- -------
UserA foo bar
UserA foo2 bar2
UserB blah blah
UserC blah blah

基于上述数据库结构,我们假设currentUser 是UserB。如果 UserB 查询 Follower 表,他将检索他的关注者列表(UserC 和 UserA),然后我想查询并检索由 UserB 关注的那些创建的所有项目(根据上述结构应该返回 3 个结果).基于我对 parse.com 如何工作的有限理解,我尝试了以下方法:

public class ItemListItemAdapter extends ParseQueryAdapter<ParseObject>{

public ItemListItemAdapter(Context context) {
super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
public ParseQuery<ParseObject> create() {

ParseUser currentUser = ParseUser.getCurrentUser();

ParseQuery<ParseObject> followerQuery = new ParseQuery("Followers");
followerQuery.whereEqualTo("follower", currentUser);

ParseQuery<ParseObject> itemQuery = new ParseQuery("Items");
itemQuery.whereMatchesQuery("author", followerQuery);

return itemQuery;

}
});
}

据我所知,我首先创建一个查询,该查询将获取 currentUser 正在关注的关注者。然后我应该有一个 User 对象列表,可用于查询 Items 类,其中 User 对象与关注者匹配,这样我就可以使用来自 Item 对象的正确数据填充我的 ListView 项目,但此查询返回零结果。

所以,要么我建模的一切都错了,要么我误解了关系的运作方式。任何帮助将不胜感激。

如果我删除 itemQuery 并只返回 followerQuery 那么它就可以工作 - 当我尝试将两者结合时(或者它可能是我用数据库中的数据结构使我的生活变得复杂,所以我也愿意接受有关重组的建议。

提前感谢您的帮助!

最佳答案

答案是不使用 whereMatchesQuery(),而是使用 whereMatchesKeyInQuery()

这是一个使用 whereMatchesKeyInQuery() 的示例(不一定特定于此问题,但在评论中按要求演示了 whereMatchesKeyInQuery 的使用):

ParseQuery followerQuery = ParseQuery.getQuery("Followers");
followerQuery.whereEqualTo("following", ParseUser.getCurrentUser());
userQuery.whereMatchesKeyInQuery("objectId", "followerId", followerQuery);

所以参数是:

query1.whereMatchesKeyInQuery("key_value_in_query1", "key_value_to_match_in_query2", query2);

关于Android:查询多个类的ParseQueryAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25234184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com