Use this file to discover all available pages before exploring further.
AI Integration Quick Reference
// Check if user is already logged inval loggedInUser = CometChat.getLoggedInUser()// Login with Auth Key (development only)CometChat.login("UID", "AUTH_KEY", object : CometChat.CallbackListener<User?>() { override fun onSuccess(user: User?) { } override fun onError(e: CometChatException?) { }})// Login with Auth Token (production)CometChat.login("AUTH_TOKEN", object : CometChat.CallbackListener<User?>() { override fun onSuccess(user: User?) { } override fun onError(e: CometChatException?) { }})// LogoutCometChat.logout(object : CometChat.CallbackListener<String>() { override fun onSuccess(p0: String?) { } override fun onError(p0: CometChatException?) { }})
Required Credentials: App ID (from init), Auth Key (dev) or Auth Token (prod) Get from:CometChat Dashboard → Your App → API & Auth Keys
After initializing the SDK, the next step is to authenticate your user. CometChat provides two login methods — Auth Key for quick development, and Auth Token for production — both accessed through the login() method.
A user must exist in CometChat before they can log in.
During development: Create users from the CometChat Dashboard. Five test users are already available with UIDs cometchat-uid-1 through cometchat-uid-5.
The SDK persists the logged-in user’s session locally. Before calling login(), always check whether a session already exists — this avoids unnecessary login calls.
Java
Kotlin
if (CometChat.getLoggedInUser() != null) { // User is already logged in — proceed to your app}
if (CometChat.getLoggedInUser() != null) { // User is already logged in — proceed to your app}
If getLoggedInUser() returns null, no active session exists and you need to call login().
CometChat.init() must be called before any other SDK method. Calling login(), sendMessage(), or registering listeners before init() will fail.
The CometChat SDK maintains the session of the logged-in user within the SDK. You do not need to call the login method for every session. Use CometChat.getLoggedInUser() to check for an existing session first.
This straightforward authentication method is ideal for proof-of-concept (POC) development or during the early stages of application development. For production environments, however, we strongly recommend using an Auth Token instead of an Auth Key to ensure enhanced security.
Auth Key is for development/testing only. In production, generate Auth Tokens on your server using the REST API and pass them to the client. Never expose Auth Keys in production client code.
Java
Kotlin
private String UID = "cometchat-uid-1";private String authKey = "AUTH_KEY";if (CometChat.getLoggedInUser() == null) { CometChat.login(UID, authKey, new CometChat.CallbackListener<User>() { @Override public void onSuccess(User user) { } @Override public void onError(CometChatException e) { } });} else { // user already logged-in perform your action}
val UID = "cometchat-uid-1"val authKey = "AUTH_KEY"if (CometChat.getLoggedInUser() == null) { CometChat.login(UID, authKey, object : CometChat.CallbackListener<User?>() { override fun onSuccess(user: User?) {} override fun onError(e: CometChatException?) {} })} else { // user already logged-in perform your action}
Parameter
Description
UID
The UID of the user that you would like to login
authKey
CometChat App Auth Key
After the user logs in, their information is returned in the User object.
You can use the logout() method to log out the user from CometChat. We suggest you call this method once your user has been successfully logged out from your app.
Java
Kotlin
CometChat.logout(new CometChat.CallbackListener<String>() { @Override public void onSuccess(String successMessage) { Log.d(TAG, "Logout completed successfully"); } @Override public void onError(CometChatException e) { Log.d(TAG, "Logout failed with exception: " + e.getMessage()); }});
CometChat.logout(object : CometChat.CallbackListener<String>() { override fun onSuccess(p0: String?) { Log.d(TAG, "Logout completed successfully") } override fun onError(p0: CometChatException?) { Log.d(TAG, "Logout failed with exception: " + p0?.message) }})
You can listen for login and logout events in real time using LoginListener. This is useful for updating UI state or triggering side effects when the auth state changes.
Callback
Description
loginSuccess(User user)
User logged in successfully. Provides the User object.
loginFailure(CometChatException e)
Login failed. Provides the exception with the reason.
logoutSuccess()
User logged out successfully.
logoutFailure(CometChatException e)
Logout failed. Provides the exception with the reason.
Always remove login listeners when they’re no longer needed (e.g., in onDestroy()). Failing to remove listeners can cause memory leaks and duplicate event handling.