Javascript 将对象替换为保存前已存在的对象

Javascript 将对象替换为保存前已存在的对象,javascript,ios,objective-c,parse-platform,Javascript,Ios,Objective C,Parse Platform,当使用Parse时,是否可能有一个beforeSave云函数,该函数不仅会修改正在保存的对象,而且会将其替换为一个全新的对象 例如 我正在创建一个消息应用程序,它将自定义表情作为消息的一部分 表情符号的图像都存储在本地设备上(沿着引用它们的plist) 因此,我有一个解析中的Message表,其中包含指向Emoji表的指针数组 Emoji表只有一个imageName条目,因此我存储的数据足以在所有设备上显示相同的图像。我不想上传和下载数百张图片 所以,我现在的问题是,如果15个不同的人都用“笑脸

当使用Parse时,是否可能有一个
beforeSave
云函数,该函数不仅会修改正在保存的对象,而且会将其替换为一个全新的对象

例如

我正在创建一个消息应用程序,它将自定义表情作为消息的一部分

表情符号的图像都存储在本地设备上(沿着引用它们的plist)

因此,我有一个解析中的
Message
表,其中包含指向
Emoji
表的指针数组

Emoji
表只有一个
imageName
条目,因此我存储的数据足以在所有设备上显示相同的图像。我不想上传和下载数百张图片

所以,我现在的问题是,如果15个不同的人都用“笑脸”表情符号创建消息,那么表中就有15个“笑脸”
emoji
对象,但它们本质上都是相同的

我想做的是在保存之前使用一个云代码
,它可以查看表情符号并找到一个相同的表情符号。如果它没有找到open,那么这很好,因为它只会创建一个新的,但是如果找到了,那么它应该使用现有的,而不是创建一个副本

当我创建消息时,我会在一次保存中完成所有操作。我创建
消息
对象并添加
表情符号
对象数组,然后对
消息
运行后台保存(这也会保存子对象)

我还没有任何代码,因为我真的不是一个JS开发人员,所以我不想直接开始黑客攻击。不过,如果能得到一些指导,那就太好了。

在保存之前,您不能在
中“重定向”对象,这样我就试图保存一个对象,而不是以静默方式更新另一个对象。您可以在beforeSave期间更新另一个对象,但为了防止保存新对象,您必须使该操作失败,因为该操作听起来不像您希望执行的操作

您可以在Save
之前添加
钩子到
消息
,以更新指向
表情符号的指针。但是,在您的情况下,这不会阻止创建
Emoji
中的新记录,因为必须先创建这些记录才能从
消息创建指针

如果您确实需要解析中的指针,从
消息
到使用的
表情符号
并且系统中的每个
表情符号
只需要一条记录,您可以:

  • 在启动时检索所有
    Emoji
    记录(可能在本地缓存),并在创建新消息时将其添加为指针

  • 使用云代码功能创建消息,根据参数或消息内容在其中查找表情符号

在保存之前,您不能在
中“重定向”对象,这样我会尝试保存一个对象,而不是以静默方式更新另一个对象。您可以在beforeSave期间更新另一个对象,但为了防止保存新对象,您必须使该操作失败,因为该操作听起来不像您希望执行的操作

您可以在Save
之前添加
钩子到
消息
,以更新指向
表情符号的指针。但是,在您的情况下,这不会阻止创建
Emoji
中的新记录,因为必须先创建这些记录才能从
消息创建指针

如果您确实需要解析中的指针,从
消息
到使用的
表情符号
并且系统中的每个
表情符号
只需要一条记录,您可以:

  • 在启动时检索所有
    Emoji
    记录(可能在本地缓存),并在创建新消息时将其添加为指针

  • 使用云代码功能创建消息,根据参数或消息内容在其中查找表情符号

在保存之前,您不能在
中“重定向”对象,这样我会尝试保存一个对象,而不是以静默方式更新另一个对象。您可以在beforeSave期间更新另一个对象,但为了防止保存新对象,您必须使该操作失败,因为该操作听起来不像您希望执行的操作

您可以在Save
之前添加
钩子到
消息
,以更新指向
表情符号的指针。但是,在您的情况下,这不会阻止创建
Emoji
中的新记录,因为必须先创建这些记录才能从
消息创建指针

如果您确实需要解析中的指针,从
消息
到使用的
表情符号
并且系统中的每个
表情符号
只需要一条记录,您可以:

  • 在启动时检索所有
    Emoji
    记录(可能在本地缓存),并在创建新消息时将其添加为指针

  • 使用云代码功能创建消息,根据参数或消息内容在其中查找表情符号

在保存之前,您不能在
中“重定向”对象,这样我会尝试保存一个对象,而不是以静默方式更新另一个对象。您可以在beforeSave期间更新另一个对象,但为了防止保存新对象,您必须使该操作失败,因为该操作听起来不像您希望执行的操作

您可以在Save
之前添加
钩子到
消息
,以更新指向
表情符号的指针。但是,在您的情况下,这不会阻止创建
Emoji
中的新记录,因为必须先创建这些记录才能从
消息创建指针

如果您确实需要解析中的指针,从
消息
表情符号
s使用{"toEmoji":{"__type":"File","name":"9d74eb8e-11bd-4bd0-9146-bc01c6656daa-......jpg","url":"http://files.parse.com/09d82830-ec2d-40b4-bb14-944728550685/9d74eb8e-11bd-4bd0-9146-bc01c6656daa-.......jpg"}}