FirebaseInAppMessaging

public 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 methods

void

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

void

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

void

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

void

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

void

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

void

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

void

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

void

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.

static @NonNull FirebaseInAppMessaging

Gets FirebaseInAppMessaging instance using the firebase app returned by getInstance

boolean

Determines whether automatic data collection is enabled or not.

void

Unregisters a click listener.

void

Unregisters a dismiss listener.

void

Unregisters a display error listener.

void

Unregisters an impression listener.

void
setAutomaticDataCollectionEnabled(
    @Nullable Boolean isAutomaticCollectionEnabled
)

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

void
setAutomaticDataCollectionEnabled(
    boolean isAutomaticCollectionEnabled
)

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

void

Sets message display component for FIAM SDK.

void
setMessagesSuppressed(@NonNull Boolean areMessagesSuppressed)

Enables or disables suppression of Firebase In App Messaging messages.

void

Programmatically triggers a contextual trigger.

Public methods

addClickListener

public void addClickListener(
    @NonNull FirebaseInAppMessagingClickListener clickListener
)

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

Parameters
@NonNull FirebaseInAppMessagingClickListener clickListener

addClickListener

public void addClickListener(
    @NonNull FirebaseInAppMessagingClickListener clickListener,
    @NonNull Executor executor
)

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

Parameters
@NonNull FirebaseInAppMessagingClickListener clickListener
@NonNull Executor executor

addDismissListener

public void addDismissListener(
    @NonNull FirebaseInAppMessagingDismissListener dismissListener
)

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

Parameters
@NonNull FirebaseInAppMessagingDismissListener dismissListener

addDismissListener

public void addDismissListener(
    @NonNull FirebaseInAppMessagingDismissListener dismissListener,
    @NonNull Executor executor
)

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

Parameters
@NonNull FirebaseInAppMessagingDismissListener dismissListener
@NonNull Executor executor

addDisplayErrorListener

public void addDisplayErrorListener(
    @NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener
)

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

Parameters
@NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener

addDisplayErrorListener

public void addDisplayErrorListener(
    @NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener,
    @NonNull Executor executor
)

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

Parameters
@NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener
@NonNull Executor executor

addImpressionListener

public void addImpressionListener(
    @NonNull FirebaseInAppMessagingImpressionListener impressionListener
)

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

Parameters
@NonNull FirebaseInAppMessagingImpressionListener impressionListener

addImpressionListener

public void addImpressionListener(
    @NonNull FirebaseInAppMessagingImpressionListener impressionListener,
    @NonNull Executor executor
)

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

Parameters
@NonNull FirebaseInAppMessagingImpressionListener impressionListener
@NonNull Executor executor

areMessagesSuppressed

public boolean areMessagesSuppressed()

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

public static @NonNull FirebaseInAppMessaging getInstance()

Gets FirebaseInAppMessaging instance using the firebase app returned by getInstance

isAutomaticDataCollectionEnabled

public boolean isAutomaticDataCollectionEnabled()

Determines whether automatic data collection is enabled or not.

Returns
boolean

true if auto initialization is required

removeClickListener

public void removeClickListener(
    @NonNull FirebaseInAppMessagingClickListener clickListener
)

Unregisters a click listener.

Parameters
@NonNull FirebaseInAppMessagingClickListener clickListener

removeDismissListener

public void removeDismissListener(
    @NonNull FirebaseInAppMessagingDismissListener dismissListener
)

Unregisters a dismiss listener.

Parameters
@NonNull FirebaseInAppMessagingDismissListener dismissListener

the listener callback to be removed which was added using addDismissListener

removeDisplayErrorListener

public void removeDisplayErrorListener(
    @NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener
)

Unregisters a display error listener.

Parameters
@NonNull FirebaseInAppMessagingDisplayErrorListener displayErrorListener

removeImpressionListener

public void removeImpressionListener(
    @NonNull FirebaseInAppMessagingImpressionListener impressionListener
)

Unregisters an impression listener.

Parameters
@NonNull FirebaseInAppMessagingImpressionListener impressionListener

setAutomaticDataCollectionEnabled

public void setAutomaticDataCollectionEnabled(
    @Nullable Boolean isAutomaticCollectionEnabled
)

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
@Nullable Boolean isAutomaticCollectionEnabled

Whether isEnabled

setAutomaticDataCollectionEnabled

public void setAutomaticDataCollectionEnabled(
    boolean isAutomaticCollectionEnabled
)

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
boolean isAutomaticCollectionEnabled

Whether isEnabled

setMessageDisplayComponent

public void setMessageDisplayComponent(
    @NonNull FirebaseInAppMessagingDisplay messageDisplay
)

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

public void setMessagesSuppressed(@NonNull Boolean areMessagesSuppressed)

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
@NonNull Boolean areMessagesSuppressed

Whether messages should be suppressed

triggerEvent

public void triggerEvent(@NonNull String eventName)

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

Parameters
@NonNull String eventName