Как мне получить объект из коллекции, обновить его и сохранить?
Извините за неоднозначное название. Чтобы сохранить конкретный объект, мне нужно запросить его, который возвращает коллекцию. Как сохранить эту коллекцию после ее редактирования?
Любая помощь приветствуется.
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)")
})
}
Вы можете просто сохранить родительский объект (при условии, что вы загрузили дочернюю коллекцию ранее), и дочерняя коллекция будет автоматически сохранена с добавленным в нее новым объектом.