The updateChannel function enables you to modify channel properties dynamically, keeping channel information current and relevant. Update display names, avatars, tags, and metadata with simple API calls that provide immediate feedback and real-time synchronization.

Update Capabilities

Channel updates support both individual property changes and batch updates, giving you flexibility in how you manage channel information.

Property Updates

Modify channel attributes
  • Display name and visual branding
  • Avatar images and metadata
  • Tags for search and categorization
  • Custom metadata fields

Real-time Sync

Immediate updates
  • Changes reflected instantly across all clients
  • Automatic Live Object synchronization
  • Conflict resolution with last-writer-wins

Update Channel Properties

Modify existing channel propertiesThe updateChannel function allows users to modify the properties of a channel. This function is useful in cases where a channel’s details need to be updated, such as changing the channel’s display name or avatar.The function takes a channelId parameter as a required input, which specifies the channel to be modified. Additionally, users can pass in any number of optional parameters to update the channel’s properties.

Parameters

ParameterTypeRequiredDescription
channelIdStringUnique identifier of the channel to update
displayNameStringNew display name for the channel
avatarFileIdStringID of image file for channel avatar
tagsArray<String>Tags for channel discovery and categorization
metadataObjectAdditional metadata associated with the channel
Metadata Handling: metadata is implemented with last writer wins semantics: multiple mutations by independent users to the metadata object will result in a single stored value. No locking, merging, or other coordination is performed across multiple writes on the data.
Avatar Images: To obtain a file ID for setting as channel avatar, please see the Image Handling section for upload instructions.

Code Examples

do {
    let builder = AmityChannelUpdateBuilder(channelId: "<channel-id>")
    builder.setMetadata(["key": "value"])
    let channel = try await channelRepository.editChannel(with: builder)
    print("Successfully update channel: \(channel.channelId)")
    print("- metadata: \(String(describing: channel.metadata))")
} catch {
    print("Unable to update a channel: \(error)")
}

Update Strategies

Next Steps

Update Strategy: Use partial updates to modify only the properties that have changed. This approach is more efficient and reduces the risk of overwriting concurrent changes made by other users.