While I am in the app, everything works great. I put the app in the background and come back even 30 seconds later and it’s no longer updating etc. I am fairly new at parse and even newer at LiveQuery so I am not sure what is needed to post but this is my basic setup:
ParseSwift Version: 4.0.1
import ParseSwift
var queryM = Message.query()
let subscriptionM = queryM.subscribeCallback!
struct MessagingInterface: View {
...
.onAppear(perform: {
let delegate = LiveQueryDelegate()
if let socket = ParseLiveQuery.getDefault() {
socket.receiveDelegate = delegate
}
queryM = queryM.where("chatKey" == finalChatID)
subscriptionM.handleSubscribe { subscribedQuery, isNew in
//: You can check this subscription is for this query
if isNew {
print("Successfully subscribed to messages query \(subscribedQuery)")
subscribedQuery.find { result in
switch result {
case .success(let messages):
self.messages = messages
case .failure(let error):
print(error)
}
}
} else {
print("Successfully updated subscription to messages query \(subscribedQuery)")
}
subscriptionM.handleEvent { newQuery, event in
newQuery.find { result in
switch result {
case .success(let messages):
self.messages = messages
case .failure(let error):
print(error)
}
}
switch event {
case .entered(let object):
print("Entered: \(object)")
case .left(let object):
print("Left: \(object)")
case .created(let object):
messages?.append(object)
print("Created: \(object)")
case .updated(let object):
let lastMessage = messages?.last
if lastMessage?.id == object.id {
if messages?.count ?? 0 > 0 {
messages?[messages!.count - 1] = object
print(messages)
}
}
print("Updated: \(object)")
case .deleted(let object):
print("Deleted: \(object)")
}
})
}