发布到解析服务器时,是否会返回新创建的对象ID

时间:2018-08-17 08:52:26

标签: ios swift parse-server

我将解析服务器用作iOS应用程序的后端。点击按钮“创建帖子”后,随着用户排队,与帖子一起上传的图片数量可能会有所增加。

问题是我不知道用户将上传的图像数量,因此我需要在解析数据库中有2个类:“ Posts”(用于发布信息)和“ Images”(用于每个上传图像) 。如何获取帖子的自动生成的ID,以便将图片与帖子相关联?

是否可以解析返回成功插入后生成的新ID的方法?如果不是,唯一的解决方案是插入该用户并为该用户的最新帖子运行立即选择功能吗?如果应用程序在多个设备上可能导致错误,那么我认为可能有更好的方法。

2 个答案:

答案 0 :(得分:2)

我相信,当保存PFObject并执行成功块时,您应该能够在其中看到objectId的快照。例如

//This is my parse class
let object = MYPFObject()
    object.data = "Hello"


 ///now when the object is saved
object.saveInBackground { (success, error) in

       //Here printing the object itself will give you the object ID
        debugPrint(object)
}

样本输出类似于

<MYPFObject: 0x1c02b2660, objectId: jE01A8upDM, localId: (null)> {
     ACL = "<PFACL: 0x1c403f3e0>";
     data = Hello;
}

答案 1 :(得分:0)

我在Parse文档中找到了这个答案,包括它可以帮助其他人的答案... 关系数据 对象可以与其他对象有关系。要对此行为建模,可以将任何PFObject用作其他PFObjects中的值。在内部,Parse框架会将引用的对象存储在一个地方,以保持一致性。

例如,博客应用中的每个注释可能对应一个帖子。要创建一个带有单个评论的新帖子,您可以编写:

// Create the post
var myPost = PFObject(className:"Post")
myPost["title"] = "I'm Hungry"
myPost["content"] = "Where should we go for lunch?"

// Create the comment
var myComment = PFObject(className:"Comment")
myComment["content"] = "Let's do Sushirrito."

// Add a relation between the Post and Comment
myComment["parent"] = myPost

// This will save both myPost and myComment
myComment.saveInBackground()