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 @NonNullFirebaseInAppMessaging

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(
    @NullableBoolean 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(@NonNullBoolean areMessagesSuppressed)

Enables or disables suppression of Firebase In App Messaging messages.

void

Programmatically triggers a contextual trigger.

Public methods

addClickListener

public void addClickListener(
    @NonNullFirebaseInAppMessagingClickListener clickListener
)

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

addClickListener

public void addClickListener(
    @NonNullFirebaseInAppMessagingClickListener clickListener,
    @NonNullExecutor executor
)

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

addDismissListener

public void addDismissListener(
    @NonNullFirebaseInAppMessagingDismissListener dismissListener
)

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

addDismissListener

public void addDismissListener(
    @NonNullFirebaseInAppMessagingDismissListener dismissListener,
    @NonNullExecutor executor
)

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

addDisplayErrorListener

public void addDisplayErrorListener(
    @NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener
)

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

Parameters
@NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener

addDisplayErrorListener

public void addDisplayErrorListener(
    @NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener,
    @NonNullExecutor executor
)

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

Parameters
@NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener
@NonNullExecutor executor

addImpressionListener

public void addImpressionListener(
    @NonNullFirebaseInAppMessagingImpressionListener impressionListener
)

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

addImpressionListener

public void addImpressionListener(
    @NonNullFirebaseInAppMessagingImpressionListener impressionListener,
    @NonNullExecutor executor
)

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

Parameters
@NonNullFirebaseInAppMessagingImpressionListener impressionListener
@NonNullExecutor 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 @NonNullFirebaseInAppMessaging 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(
    @NonNullFirebaseInAppMessagingClickListener clickListener
)

Unregisters a click listener.

removeDismissListener

public void removeDismissListener(
    @NonNullFirebaseInAppMessagingDismissListener dismissListener
)

Unregisters a dismiss listener.

Parameters
@NonNullFirebaseInAppMessagingDismissListener dismissListener

the listener callback to be removed which was added using addDismissListener

removeDisplayErrorListener

public void removeDisplayErrorListener(
    @NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener
)

Unregisters a display error listener.

Parameters
@NonNullFirebaseInAppMessagingDisplayErrorListener displayErrorListener

removeImpressionListener

public void removeImpressionListener(
    @NonNullFirebaseInAppMessagingImpressionListener impressionListener
)

Unregisters an impression listener.

setAutomaticDataCollectionEnabled

public void setAutomaticDataCollectionEnabled(
    @NullableBoolean 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
@NullableBoolean 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(
    @NonNullFirebaseInAppMessagingDisplay 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(@NonNullBoolean 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
@NonNullBoolean areMessagesSuppressed

Whether messages should be suppressed

triggerEvent

public void triggerEvent(@NonNullString eventName)

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

Parameters
@NonNullString eventName