Skills

Firebase In App Messaging

Use when running in-app message campaigns, triggering/suppressing messages, configuring...

Install

npx skills add evanca/flutter-ai-rules --skill firebase-in-app-messaging -g -a claude-code -y
Category
Testing
Updated
5d ago
License
MIT
Context cost
Lightabout 1,331 tokens
Runs scripts
No, instructions only

What it does

Use when running in-app message campaigns, triggering/suppressing messages, configuring opt-in data collection, testing on specific devices, or handling message callbacks.

Firebase In-App Messaging Skill

This skill defines how to correctly implement Firebase In-App Messaging in Flutter applications, covering setup, programmatic triggers, privacy controls, testing workflows, and campaign management.

When to Use

Use this skill when:

  • Setting up Firebase In-App Messaging in a Flutter project.
  • Triggering or suppressing in-app messages programmatically.
  • Implementing opt-in data collection for GDPR or user privacy compliance.
  • Testing campaigns with specific devices before rollout.
  • Configuring message types, targeting rules, and A/B tests.

1. Setup and Configuration

flutter pub add firebase_in_app_messaging
import 'package:firebase_in_app_messaging/firebase_in_app_messaging.dart';
  • Initialize Firebase before using any In-App Messaging features.
  • In-App Messaging retrieves messages from the server once per day by default to conserve power.

Setup Checklist

  1. Confirm Firebase.initializeApp() completes before accessing In-App Messaging.
  2. Create a test campaign in the Firebase console to verify the integration.
  3. Locate the Installation ID for device-specific testing (see Testing section).

2. Message Triggering and Display

Use Google Analytics events to trigger in-app messages without additional code. For programmatic triggering:

// Trigger a message tied to a custom event
await FirebaseInAppMessaging.instance.triggerEvent("purchase_complete");

Suppress Messages During Critical Flows

class PaymentScreen extends StatefulWidget {
  @override
  State<PaymentScreen> createState() => _PaymentScreenState();
}

class _PaymentScreenState extends State<PaymentScreen> {
  @override
  void initState() {
    super.initState();
    // Suppress messages during payment
    FirebaseInAppMessaging.instance.setMessagesSuppressed(true);
  }
Read the whole SKILL.md on GitHub

More in Testing