User Management
When a user logs into your app, you need to programmatically login the user into CometChat. But before you log in the user to CometChat, you need to create the user.
Summing up-
When a user registers in your app
- You add the user details in your database
- You create a user in CometChat
When a user logs into your app
- You log in the user to your app
- You log in the user to CometChat
Creating a user
Ideally, user creation should take place at your backend. You can refer 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 the createUser()
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, please check this
- Dart
String authKey = "AUTH_KEY";//Replace with the auth key of app
User user = User( uid: "usr1" , name: "Kevin" );//Replace with name and uid of user
CometChat.createUser(user, authKey, onSuccess: (User user){
debugPrint("Create User succesful ${user}");
}, onError: (CometChatException e){
debugPrint("Create User Failed with exception ${e.message}");
});
UID can be alphanumeric with underscore and hyphen. Spaces, punctuation and other special characters are not allowed.
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, you can check the update a user section. However, this can be achieved on the fly as well using the updateUser()
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.
Please make sure the User
object provided to the updateUser()
method has the UID
of the user to be updated set.
Updating logged-in user
Updating a logged-in user is similar to updating a user. The only difference being this method does not require an AuthKey. This method takes a User
object as input and returns the updated User
object on the successful execution of the request.
- Dart
User user = User(name: 'Updated Name');
CometChat.updateCurrentUserDetails(user, onSuccess: (User updatedUser) {
debugPrint("Updated User: $updatedUser");
}, onError: (CometChatException e) {
debugPrint("Updated User exception : ${e.message}");
});
By using the updateCurrentUserDetails()
method one can only update the logged-in user irrespective 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 please check 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 |