let messageId = messageRepository.createTextMessage(...) { message, error in
// Handle message creation result.
if let message = message {
print("The message is created on the server.")
print("Error: \(error).")
// ⬆ .createTextMessage(...) above returns messageId.
// If the app already observes a message live collection via `.getMessages(...)`
// This message will appear on those live collections immediately.
// For the use-cases that require observing a single message after creation,
// Developers can use this messageId and pass it to `.getMessage(...)`.
token = messageRepository.getMessage(messageId)?.observe { liveMessage, error in
// Observe message data changes.
guard let message = liveMessage.object else {
switch message.syncState {
print("The message was created on the server.")
print("syncState = \(message.syncState)")