firebase_in_app_messaging plugin

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

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

Note: This plugin is still under development, and some APIs might not be available yet. Feedback and Pull Requests are most welcome!

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 issues to send feedback or report a bug. Thank you!

Libraries

firebase_in_app_messaging