Parse.com上的一对多关系

时间:2014-01-13 07:22:31

标签: android one-to-many parse-platform

我在Parse.com上有两个课程:Image&用户。在User类中,我正在保存3个字段Name,Mobile-number&占用。在Image类中,我正在保存图像。

我必须在这两个类之间创建一对多的关系,以便我可以使用相应的手机号码获取图像。

我在parse.com上创建了User类和Image类之间的关系,并在User类中创建了一个名为Mobile的列。无法找到如何使用具有一对多关系的特定移动电话号码获取图像。请通过文档获取帮助。提前致谢。

2 个答案:

答案 0 :(得分:3)

这只是代码。你将不得不考虑如何仔细地组织你的课程。我不确定你打算如何去,但就编码而言,以下内容应该有所帮助。

首先获得当前用户。

ParseUser currentUser = ParseUser.getCurrentUser();

由于您将“移动”列作为User表中的关系,因此首先获取关系。 像这样。

ParseRelation<ParseObject> relation = currentUser
                                    .getRelation("mobile");

获得关系后,获取需要的对象的查询。在您的情况下,它是图像对象。

ParseQuery<ParseObject> query = relation.getQuery("Image");

从这里,您可以自定义查询。例如:

query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject, ParseException e) {
    if(e == null)
    //your code
    //List<ParseFile> pFileList = (ArrayList<ParseFile>) object.get("images"); //something like this just to give an idea
  }

});

或者,如果您有多个对象,请使用

query.findInBackground(new FindCallback<ParseObject>() {
    public void done(List<ParseObject> list, ParseException e) {
        if (e == null) {
            for (ParseObject object : list) {

                ParseFile image = (ParseFile) object.get("images_column_name");

            }
        } 
    }
});

答案 1 :(得分:0)

如果Image类只有一个User与之相关,只需使用引用属性即可。您可以将其称为owneruser或其他任何内容。然后,您只需将其设置为当前用户(或任何其他用户)。

内部Parse将仅存储此对象的ID以及一些额外信息,以使其成为另一个类的链接。

当您查询时,您可以简单地使用当前用户(或任何其他用户)来与该属性进行比较。再一次,Parse将在内部只比较ID,你不必考虑它。

查看documentation here。查看它将parent的{​​{1}}属性设置为Comment的实例的位置?这就是你想要做的事情。

使用手机号码链接是一个坏主意,就像你更改Post上的号码一样,那么使用该号码的所有User类现在都是孤立的,除非您编写额外的代码来处理此