Quick Reference for AI Agents & DevelopersNote: User creation/updates should ideally happen on your backend using REST API.
- You add the user details in your database
- You create a user in CometChat
- You log in the user to your app
- You log in the user to CometChat (programmatically)
Creating a user
Ideally, user creation should take place at your backend. Refer to our REST API to learn more about creating a user and use the appropriate code sample based on your backend language. However, if you wish to create users on the fly, you can use thecreateUser() method. This method takes a User object and the API Key as input parameters and returns the created User object if the request is successful.
For more details on the fields present in the User class, see the User Class section.
- Java
- Kotlin
Updating a user
Updating a user, similar to creating a user, should ideally be achieved at your backend using the RESTful APIs. For more information, see the update a user section. However, this can also be achieved on the fly using theupdateUser() method. This method takes a User object and the API Key as inputs and returns the updated User object on successful execution of the request.
- Java
- Kotlin
User object provided to the updateUser() method has the UID of the user to be updated.
Updating logged-in user
Updating a logged-in user is similar to updating a user. The only difference is that this method does not require an Auth Key. This method takes aUser object as input and returns the updated User object on successful execution of the request.
- Java
- Kotlin
updateCurrentUserDetails() method, you can only update the logged-in user regardless of the UID passed. Also, it is not possible to update the role of a logged-in user.
Deleting a user
Deleting a user can only be achieved via the RESTful APIs. For more information, see the delete a user section.User Class
| Field | Editable | Information |
|---|---|---|
| uid | specified on user creation. Not editable after that | Unique identifier of the user |
| name | Yes | Display name of the user |
| avatar | Yes | URL to profile picture of the user |
| link | Yes | URL to profile page |
| role | Yes | User role of the user for role based access control |
| metadata | Yes | Additional information about the user as JSON |
| status | No | Status of the user. Could be either online/offline |
| statusMessage | Yes | Any custom status message that needs to be set for a user |
| lastActiveAt | No | The unix timestamp of the time the user was last active. |
| hasBlockedMe | No | A boolean that determines if the user has blocked the logged in user |
| blockedByMe | No | A boolean that determines if the logged in user has blocked the user |
| tags | Yes | A list of tags to identify specific users |
Best Practices
Create Users on Your Backend
Create Users on Your Backend
Always create and update users on your backend server using the REST API. This keeps your API Key secure and allows you to validate user data before creating accounts in CometChat.
Use updateCurrentUserDetails for Logged-in Users
Use updateCurrentUserDetails for Logged-in Users
When updating the currently logged-in user’s profile, use
updateCurrentUserDetails() instead of updateUser(). This method doesn’t require an API Key and is more secure for client-side updates.Validate UID Format
Validate UID Format
Ensure UIDs are alphanumeric with only underscores and hyphens. Validate UID format before calling
createUser() to avoid API errors.Sync User Data
Sync User Data
Keep user data synchronized between your app’s database and CometChat. When a user updates their profile in your app, update it in CometChat as well to maintain consistency.
Use Metadata for Custom Fields
Use Metadata for Custom Fields
Store additional user information (preferences, settings, custom attributes) in the
metadata field as JSON. This allows you to extend user profiles without modifying the core schema.Troubleshooting
User Creation Failed - UID Already Exists
User Creation Failed - UID Already Exists
Symptom:
createUser() fails with “User with this UID already exists” error.Cause: Attempting to create a user with a UID that’s already registered in CometChat.Solution: Check if the user exists before creating by calling CometChat.getUser() first. If the user exists, use updateUser() instead of createUser().Invalid API Key Error
Invalid API Key Error
Symptom:
createUser() or updateUser() fails with “Invalid API Key” error.Cause: Incorrect API Key or using Auth Key instead of API Key.Solution: Verify your API Key in the CometChat Dashboard under API & Auth Keys. Ensure you’re using the API Key (for user management), not the Auth Key (for authentication).Cannot Update User Role
Cannot Update User Role
Symptom:
updateCurrentUserDetails() doesn’t update the user’s role.Cause: The updateCurrentUserDetails() method cannot modify user roles for security reasons.Solution: Update user roles on your backend using the REST API. Role changes should be controlled server-side.