gpt4 book ai didi

android - 防止重复条目 parse.com

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:39 37 4
gpt4 key购买 nike

我正在使用 Parse.com 作为我的后端,虽然似乎有一种方法 saveInBackgroundWithBlock 可以防止重复条目。它在 Android 上似乎不存在。我只想上传独特的条目,但无法找到这样做的方法。

我唯一能想到的是查询然后在条目不存在时插入,但这样做的网络调用次数是原来的两倍,我觉得它需要这样做。

谢谢

最佳答案

正如我之前在评论中提到的,我遇到了同样的问题。最后编写查询以查找现有对象,然后仅保存不存在的对象。如下所示。

//假设你有一个 ParseObjects 列表..这个列表包含现有的和新的对象。

List<ParseObject> allObjects = new ArrayList<ParseObject>();
allObjects.add(object); //this contains the entire list of objects.

您想通过使用字段 say ids 来找出现有的。

//First, form a query
ParseQuery<ParseObject> query = ParseQuery.getQuery("Class");
query.whereContainedIn("ids", allIds); //allIds is the list of ids

List<ParseObject> Objects = query.find(); //get the list of the parseobjects..findInBackground(Callback) whichever is suitable

for (int i = 0; i < Objects.size(); i++)
existingIds.add(Objects.get(i).getString("ids"));

List<String> idsNotPresent = new ArrayList<String>(allIds);
idsNotPresent.removeAll(existingIds);

//Use a list of Array objects to store the non-existing objects
List<ParseObject> newObjects = new ArrayList<ParseObject>();

for (int i = 0; i < selectedFriends.size(); i++) {
if (idsNotPresent.contains(allObjects.get(i).getString(
"ids"))) {
newObjects.add(allObjects.get(i)); //new Objects will contain the list of only the ParseObjects which are new and are not existing.
}
}

//Then use saveAllInBackground to store this objects

ParseObject.saveAllInBackground(newObjects, new SaveCallback() {

@Override
public void done(ParseException e) {
// TODO Auto-generated method stub
//do something
}
});

我也尝试过在 ParseCloud 上使用 beforeSave 方法。如您所知,在保存对象之前,此方法在 ParseCloud 上调用,非常适合进行任何所需的验证。但是,它并没有很好地运行。如果您需要 ParseCloud 代码中的内容,请告诉我。

希望这对您有所帮助!

关于android - 防止重复条目 parse.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21361479/

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