限制使用 Parse 的调用次数

Limit number of calls in using Parse

我正在构建我的第一个带有后端的应用程序。

一般信息

该应用允许用户上传地点、附加标签、图片等

Dbs

我使用 Realm 作为离线数据库,Parse.com 作为在线数据库。

例子

我正在构建数据库模型并尝试 link 所有多对多关系。一个例子: 一个地方有多个标签(短字符串),一个标签可以有多个地方。

为了构建这个,我用 realm 做了这个: 1.制作地点对象 2.对于每个给定的标签,制作一个标签对象并添加地点对象关系 3.获取place对象并添加tag对象关系

现在,当我有 place 对象时,我可以从一个地方获取所有标签。 我可以获得所有属于标签对象的地方。

我现在正在使用 Parse 构建在线版本,并意识到这种方法会导致很多调用。

可能的解决方案

由于我是这种逻辑的新手,所以我希望问题很清楚。 我理解它很宽泛,但我认为最好解释一下整个案例。

有多种方法可以在 Parse 中实现多对多关系。您可以根据相关对象的数量使用数组或关系。您可以在 Parse's documentation.

中阅读更多内容

在 Parse Relations 中,您可以在调用之前在一个关系中添加多个对象。让我以文档中的 Book 和 Author 示例为例,并根据您的情况进行调整。过程是:

  1. 创建 Place 对象
  2. 检查标签对象是否存在。如果没有就创建一个。
  3. 将标记对象与解析关系中的放置对象相关联

这是代码示例:

// let’s say we have a few objects representing Place tags
ParseObject tagOne=
ParseObject tagTwo =
ParseObject tagThree =

// now we create a place object or specify the one you want to update
ParseObject place= new ParseObject("Place");

// now let’s associate the tags with the place
// remember to create a "tags" relation on Place
ParseRelation<ParseObject> relation = place.getRelation("tags");
relation.add(tagOne);
relation.add(tagTwo);
relation.add(tagThree);

// now save the book object
book.saveInBackground();

编辑下方评论

如果你想找到所有带有给定标签的地方,你可以这样做:

ParseObject tag = ....
ParseQuery<ParseObject> query = ParseQuery.getQuery("Place");
query.whereEqualTo("tags",tag);