解析 - 手动设置对象ID

时间:2015-05-19 00:47:29

标签: parse-platform

我的应用程序有两个版本的解析,测试和实时版本。

我创建了一个新类,并在每个应用程序上创建了该类的实例。在我的iOS应用程序内部,我调用该实例来获取一堆字符串,以便在整个应用程序中使用。不幸的是,我决定按对象id进行查询,我忘了用实时应用版本的id替换测试应用版本的对象ID ...因此,查询不返回任何对象,并且我的字符串未设置。 / p>

我担心这不会成为苹果公司接受快速发布的问题。我最好的选择是创建具有相同对象ID的对象,以便它被拉起来。这不需要在应用商店上进行任何更新。

是否有 ANY 方法吗?我找到了一个createWithoutData方法,但它无法创建实例,只引用现有实例。我尝试了以下操作,但是当我尝试保存它时,它返回了错误“找不到更新的对象”。

// Create a pointer to an object of class Point with id dlkj83d
var Point = Parse.Object.extend("Point");
var point = new Point();
point.id = "dlkj83d";

我甚至想过尝试一个创建对象的循环,直到它找到一个具有正确id的对象,但是在对象被保存之前你没有得到一个指定的id,显然,请求限制使得极不可能富有成效

我找不到任何Parse支持号码,只是说要问社区...我觉得我应该能够找到一个支持号码并要求某人改变我现有的ID或创建一个新手动为我。这不应该是不可能的。如果你知道如何处理这个问题,请告诉我!

感谢任何和所有提示。

1 个答案:

答案 0 :(得分:9)

Parse不允许手动或以编程方式设置对象ID,尽管您可以通过以下步骤更改现有的ObjectID

1)备份您想要更改ObjectID的特定类。

2)备份文件将以.json格式在文本编辑器中打开。

3)找到ObjectID并替换为新的ObjectID。

4)在Parse中输入全部内容。

我希望这会有所帮助。

编辑 - Parse-Server仍然可以实现,但必须直接通过数据库而不是Parse-Server完成。仪表板中没有内置导入/导出工具,您仍然不允许设置或修改现有对象的objectIds。但是,您可以使用_id字段集导入.bson和.json数据,从而允许您显式设置objectIds。虽然这些objectId可以是任何值,但强烈建议您遵循Parse-Server的模式,并确保您不创建任何重复的ID。