Skip to main content

Documentation Index

Fetch the complete documentation index at: https://cometchat-22654f5b-docs-android-v6-beta2.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

// Check if user is already logged in
val 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?) { }
})

// Logout
CometChat.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.

Before You Log In

Create a User

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.
  • In production: Call the Create User REST API when a user signs up in your app.
We have set up 5 users for testing with UIDs: cometchat-uid-1, cometchat-uid-2, cometchat-uid-3, cometchat-uid-4, and cometchat-uid-5.

Check for an Existing Session

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.
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.

Login using Auth Key

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.
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
}
ParameterDescription
UIDThe UID of the user that you would like to login
authKeyCometChat App Auth Key
After the user logs in, their information is returned in the User object.

Login using Auth Token

This advanced authentication procedure does not use the Auth Key directly in your client code, ensuring better security.
  1. Create a User via the CometChat API when the user signs up in your app.
  2. Create an Auth Token via the CometChat API for the new user every time the user logs in to your app.
  3. Pass the Auth Token to your client and use it in the login() method.
private String authToken = "AUTH_TOKEN";

CometChat.login(authToken, new CometChat.CallbackListener<User>() {
  @Override
  public void onSuccess(User user) {
    Log.d(TAG, "Login Successful : " + user.toString());
  }

  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Login failed with exception: " + e.getMessage());
  }
});
ParameterDescription
authTokenAuth Token of the user you would like to login
After the user logs in, their information is returned in the User object.

Logout

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.
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());
  }
});

Login Listener

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.
CallbackDescription
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.

Add a Listener

CometChat.addLoginListener("UNIQUE_ID", new CometChat.LoginListener() {
    @Override
    public void loginSuccess(User user) {
        Log.d("LoginListener", "loginSuccess " + user.toString());
    }

    @Override
    public void loginFailure(CometChatException e) {
        Log.d("LoginListener", "loginFailure " + e.getMessage());
    }

    @Override
    public void logoutSuccess() {
        Log.d("LoginListener", "logoutSuccess");
    }

    @Override
    public void logoutFailure(CometChatException e) {
        Log.d("LoginListener", "logoutFailure " + e.getMessage());
    }
});

Remove a Listener

CometChat.removeLoginListener("UNIQUE_ID");
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.

Next Steps

Send a Message

Start sending text, media, and custom messages to users and groups

User Management

Retrieve and manage users in your application

Connection Status

Monitor the SDK connection state in real time

Key Concepts

Understand core CometChat concepts and terminology