Как мне получить объект из коллекции, обновить его и сохранить?

Извините за неоднозначное название. Чтобы сохранить конкретный объект, мне нужно запросить его, который возвращает коллекцию. Как сохранить эту коллекцию после ее редактирования?

Любая помощь приветствуется.

    func joinGroup() {

    var group = Groups()


    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM)
    self.backendless.userService.getPersistentUser()
    let user = self.backendless.userService.currentUser

    let whereClause = "UsersInGroup.objectId = '\(user.objectId)'"
    let dataQuery = BackendlessDataQuery()
    dataQuery.whereClause = whereClause

    var error: Fault?
    var dataStore = self.backendless.persistenceService.find(Groups.ofClass(),
        dataQuery:dataQuery) as BackendlessCollection

    for joiningroup in dataStore.data as! [Groups] {

       joiningroup.UsersInGroup.append(user)



    }

Вот как объекты сохраняются

func createGroup() {


    let groups = self.backendless.persistenceService.of(Groups().ofClass())

    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM)
    self.backendless.userService.getPersistentUser()
    let user = self.backendless.userService.currentUser

    var newGroup = Groups()
    newGroup.groupName = "FromClient"
    newGroup.ownerId = user.objectId
    newGroup.UsersInGroup.append(user)

    var error: Fault?
    newGroup = groups.save(newGroup) as! Groups
    if error == nil {
        print("Created group: \(newGroup.groupName)")
    }
    else {
        print("Server reported an error: \(error)")
    }



}

2 ответа

Решение
func joinGroup() {

        self.backendless.userService.getPersistentUser()
        let user = self.backendless.userService.currentUser


            let dataStore = backendless.data.of(Groups.ofClass())
         dataStore.findID(
                        "A772D4AB-BCB6-1C2E-FFE9-C436C65E3200",
                        response: { (result: AnyObject!) -> Void in
                            let foundContact = result as! Groups
                            let groupJoining = foundContact
                            groupJoining.UsersInGroup.append(user)
                            dataStore.save(
                groupJoining,
                response: { (result: AnyObject!) -> Void in
                    let savedContact = result as! Groups
                    print("Contact has been saved: \(savedContact.objectId)")

                },
                error: { (fault: Fault!) -> Void in
                    print("Server reported an error (1): \(fault)")
            })


                            print("Contact has been found: \(foundContact.objectId)")
                        },
                        error: { (fault: Fault!) -> Void in
                            print("Server reported an error (2): \(fault)")
                    })




    }

Вы можете просто сохранить родительский объект (при условии, что вы загрузили дочернюю коллекцию ранее), и дочерняя коллекция будет автоматически сохранена с добавленным в нее новым объектом.

Другие вопросы по тегам