FirebaseInAppMessaging

class FirebaseInAppMessaging


The entry point of the Firebase In App Messaging headless SDK.

Firebase In-App Messaging will automatically initialize, and start listening for events.

This feature uses a Firebase Installation ID token to:

  • identify the app instance
  • fetch messages from the Firebase backend
  • send usage metrics to the Firebase backend.

To delete the Installation ID and the data associated with it, see delete.

Summary

Public functions

Unit

Registers a click listener with FIAM, which will be notified on every FIAM click.

Unit
addClickListener(
    clickListener: FirebaseInAppMessagingClickListener,
    executor: Executor
)

Registers a click listener with FIAM, which will be notified on every FIAM click, and triggered on the provided executor.

Unit

Registers a dismiss listener with FIAM, which will be notified on every FIAM dismiss.

Unit
addDismissListener(
    dismissListener: FirebaseInAppMessagingDismissListener,
    executor: Executor
)

Registers a dismiss listener with FIAM, which will be notified on every FIAM dismiss, and triggered on the provided executor.

Unit

Registers a display error listener with FIAM, which will be notified on every FIAM display error.

Unit
addDisplayErrorListener(
    displayErrorListener: FirebaseInAppMessagingDisplayErrorListener,
    executor: Executor
)

Registers a display error listener with FIAM, which will be notified on every FIAM display error, and triggered on the provided executor.

Unit

Registers an impression listener with FIAM, which will be notified on every FIAM impression.

Unit
addImpressionListener(
    impressionListener: FirebaseInAppMessagingImpressionListener,
    executor: Executor
)

Registers an impression listener with FIAM, which will be notified on every FIAM impression, and triggered on the provided executor.

Boolean

Determines whether messages are suppressed or not.

java-static FirebaseInAppMessaging

Gets FirebaseInAppMessaging instance using the firebase app returned by getInstance

Boolean

Determines whether automatic data collection is enabled or not.

Unit

Unregisters a click listener.

Unit

Unregisters a dismiss listener.

Unit

Unregisters a display error listener.

Unit

Unregisters an impression listener.

Unit
setAutomaticDataCollectionEnabled(
    isAutomaticCollectionEnabled: Boolean?
)

Enables, disables, or clears automatic data collection for Firebase In-App Messaging.

Unit
setAutomaticDataCollectionEnabled(
    isAutomaticCollectionEnabled: Boolean
)

Enables, disables, or clears automatic data collection for Firebase In-App Messaging.

Unit

Sets message display component for FIAM SDK.

Unit
setMessagesSuppressed(areMessagesSuppressed: Boolean)

Enables or disables suppression of Firebase In App Messaging messages.

Unit
triggerEvent(eventName: String)

Programmatically triggers a contextual trigger.

Public functions

addClickListener

fun addClickListener(clickListener: FirebaseInAppMessagingClickListener): Unit

Registers a click listener with FIAM, which will be notified on every FIAM click.

Parameters
clickListener: FirebaseInAppMessagingClickListener

addClickListener

fun addClickListener(
    clickListener: FirebaseInAppMessagingClickListener,
    executor: Executor
): Unit

Registers a click listener with FIAM, which will be notified on every FIAM click, and triggered on the provided executor.

Parameters
clickListener: FirebaseInAppMessagingClickListener
executor: Executor

addDismissListener

fun addDismissListener(
    dismissListener: FirebaseInAppMessagingDismissListener
): Unit

Registers a dismiss listener with FIAM, which will be notified on every FIAM dismiss.

Parameters
dismissListener: FirebaseInAppMessagingDismissListener

addDismissListener

fun addDismissListener(
    dismissListener: FirebaseInAppMessagingDismissListener,
    executor: Executor
): Unit

Registers a dismiss listener with FIAM, which will be notified on every FIAM dismiss, and triggered on the provided executor.

Parameters
dismissListener: FirebaseInAppMessagingDismissListener
executor: Executor

addDisplayErrorListener

fun addDisplayErrorListener(
    displayErrorListener: FirebaseInAppMessagingDisplayErrorListener
): Unit

Registers a display error listener with FIAM, which will be notified on every FIAM display error.

Parameters
displayErrorListener: FirebaseInAppMessagingDisplayErrorListener

addDisplayErrorListener

fun addDisplayErrorListener(
    displayErrorListener: FirebaseInAppMessagingDisplayErrorListener,
    executor: Executor
): Unit

Registers a display error listener with FIAM, which will be notified on every FIAM display error, and triggered on the provided executor.

Parameters
displayErrorListener: FirebaseInAppMessagingDisplayErrorListener
executor: Executor

addImpressionListener

fun addImpressionListener(
    impressionListener: FirebaseInAppMessagingImpressionListener
): Unit

Registers an impression listener with FIAM, which will be notified on every FIAM impression.

Parameters
impressionListener: FirebaseInAppMessagingImpressionListener

addImpressionListener

fun addImpressionListener(
    impressionListener: FirebaseInAppMessagingImpressionListener,
    executor: Executor
): Unit

Registers an impression listener with FIAM, which will be notified on every FIAM impression, and triggered on the provided executor.

Parameters
impressionListener: FirebaseInAppMessagingImpressionListener
executor: Executor

areMessagesSuppressed

fun areMessagesSuppressed(): Boolean

Determines whether messages are suppressed or not. This is honored by the UI sdk, which handles rendering the in app message.

Returns
Boolean

true if messages should be suppressed

getInstance

java-static fun getInstance(): FirebaseInAppMessaging

Gets FirebaseInAppMessaging instance using the firebase app returned by getInstance

isAutomaticDataCollectionEnabled

fun isAutomaticDataCollectionEnabled(): Boolean

Determines whether automatic data collection is enabled or not.

Returns
Boolean

true if auto initialization is required

removeClickListener

fun removeClickListener(clickListener: FirebaseInAppMessagingClickListener): Unit

Unregisters a click listener.

Parameters
clickListener: FirebaseInAppMessagingClickListener

removeDismissListener

fun removeDismissListener(
    dismissListener: FirebaseInAppMessagingDismissListener
): Unit

Unregisters a dismiss listener.

Parameters
dismissListener: FirebaseInAppMessagingDismissListener

the listener callback to be removed which was added using addDismissListener

removeDisplayErrorListener

fun removeDisplayErrorListener(
    displayErrorListener: FirebaseInAppMessagingDisplayErrorListener
): Unit

Unregisters a display error listener.

Parameters
displayErrorListener: FirebaseInAppMessagingDisplayErrorListener

removeImpressionListener

fun removeImpressionListener(
    impressionListener: FirebaseInAppMessagingImpressionListener
): Unit

Unregisters an impression listener.

Parameters
impressionListener: FirebaseInAppMessagingImpressionListener

setAutomaticDataCollectionEnabled

fun setAutomaticDataCollectionEnabled(
    isAutomaticCollectionEnabled: Boolean?
): Unit

Enables, disables, or clears automatic data collection for Firebase In-App Messaging.

When enabled, generates a registration token on app startup if there is no valid one and generates a new token when it is deleted (which prevents delete from stopping the periodic sending of data). This setting is persisted across app restarts and overrides the setting specified in your manifest.

When null, the enablement of the auto-initialization depends on the manifest and then on the global enablement setting in this order. If none of these settings are present then it is enabled by default.

If you need to change the default, (for example, because you want to prompt the user before generates/refreshes a registration token on app startup), add the following to your application’s manifest:

<meta-data android:name="firebase_inapp_messaging_auto_init_enabled" android:value="false" />

Note, this will require you to manually initialize Firebase In-App Messaging, via:

FirebaseInAppMessaging.getInstance().setAutomaticDataCollectionEnabled(true)

Manual initialization will also be required in order to clear these settings and fall back on other settings, via:

FirebaseInAppMessaging.getInstance().setAutomaticDataCollectionEnabled(null)
Parameters
isAutomaticCollectionEnabled: Boolean?

Whether isEnabled

setAutomaticDataCollectionEnabled

fun setAutomaticDataCollectionEnabled(
    isAutomaticCollectionEnabled: Boolean
): Unit

Enables, disables, or clears automatic data collection for Firebase In-App Messaging.

When enabled, generates a registration token on app startup if there is no valid one and generates a new token when it is deleted (which prevents delete from stopping the periodic sending of data). This setting is persisted across app restarts and overrides the setting specified in your manifest.

By default, auto-initialization is enabled. If you need to change the default, (for example, because you want to prompt the user before generates/refreshes a registration token on app startup), add to your application’s manifest:

<meta-data android:name="firebase_inapp_messaging_auto_init_enabled" android:value="false" />

Note, this will require you to manually initialize Firebase In-App Messaging, via:

FirebaseInAppMessaging.getInstance().setAutomaticDataCollectionEnabled(true)
Parameters
isAutomaticCollectionEnabled: Boolean

Whether isEnabled

setMessageDisplayComponent

fun setMessageDisplayComponent(
    messageDisplay: FirebaseInAppMessagingDisplay
): Unit

Sets message display component for FIAM SDK. This is the method used by both the default FIAM display SDK or any app wanting to customize the message display.

setMessagesSuppressed

fun setMessagesSuppressed(areMessagesSuppressed: Boolean): Unit

Enables or disables suppression of Firebase In App Messaging messages.

When enabled, no in app messages will be rendered until either you either disable suppression, or the app restarts, as this state is not preserved over app restarts.

By default, messages are not suppressed.

Parameters
areMessagesSuppressed: Boolean

Whether messages should be suppressed

triggerEvent

fun triggerEvent(eventName: String): Unit

Programmatically triggers a contextual trigger. This will display any eligible in-app messages that are triggered by this event.

Parameters
eventName: String