firebase_in_app_messaging plugin

A Flutter plugin to use the Firebase In-App Messaging API.

For Flutter plugins for other Firebase products, see README.md.

Usage

Import the firebase_in_app_messaging plugin

To use the firebase_in_app_messaging plugin, follow the plugin installation instructions.

Android integration

There are a few extra steps required for the Android integration. Enable the Google services by configuring the Gradle scripts as such.

  1. Add the classpath to the [project]/android/build.gradle file.
dependencies {
  // Example existing classpath
  classpath 'com.android.tools.build:gradle:3.3.0'
  // Add the google services classpath
  classpath 'com.google.gms:google-services:4.3.0'
}
  1. Add the apply plugin to the [project]/android/app/build.gradle file.
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

Note: If this section is not completed you will get an error like this:

java.lang.IllegalStateException:
Default FirebaseApp is not initialized in this process [package name].
Make sure to call FirebaseApp.initializeApp(Context) first.

Note: When you are debugging on Android, use a device or AVD with Google Play services. Otherwise you will not be able to use Firebase In-App Messaging.

Use the plugin

To show In-App Messages in your app, no extra setup is required - just import the plugin and you are good to go. However, to modify message behavior (as documented here), the plugin provides the following methods -

First off, add the following imports to your Dart code:

import 'package:firebase_in_app_messaging/firebase_in_app_messaging.dart';

Programmatic Triggers (docs)

To trigger in-app messages programmatically

FirebaseInAppMessaging.triggerEvent('eventName');

Temporarily disable in-app messages (docs)

If you'd like to suppress message displays for any reason, for example to avoid interrupting a sequence of payment processing screens, you can do that the following

FirebaseInAppMessaging.setMessagesSuppressed(true);


// To re-enable
FirebaseInAppMessaging.setMessagesSuppressed(false);

Enable opt-out message delivery (docs)

First, follow the step outlined here for both iOS and Android. Then add the following code in your app:

FirebaseInAppMessaging.setAutomaticDataCollectionEnabled(false);

Example

See the example application source for a complete sample app using the Firebase In-App Messaging.

Issues and feedback

Please file Flutterfire specific issues, bugs, or feature requests in our issue tracker.

Plugin issues that are not specific to Flutterfire can be filed in the Flutter issue tracker.

To contribute a change to this plugin, please review our contribution guide, and send a pull request.

Libraries

firebase_in_app_messaging