Install
$ agentstack add skill-evanca-flutter-ai-rules-firebase-in-app-messaging ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
- Confirm
Firebase.initializeApp()completes before accessing In-App Messaging. - Create a test campaign in the Firebase console to verify the integration.
- 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 createState() => _PaymentScreenState();
}
class _PaymentScreenState extends State {
@override
void initState() {
super.initState();
// Suppress messages during payment
FirebaseInAppMessaging.instance.setMessagesSuppressed(true);
}
@override
void dispose() {
// Re-enable messages when leaving payment flow
FirebaseInAppMessaging.instance.setMessagesSuppressed(false);
super.dispose();
}
}
- Suppression is automatically turned off on app restart.
- Suppressed messages are ignored — their trigger conditions must be met again after suppression is lifted.
- Common flows to suppress: payment processing, onboarding wizards, form submission screens.
3. User Privacy and Opt-In Data Collection
By default, In-App Messaging automatically delivers messages to all targeted users.
Disable automatic collection — iOS (Info.plist):
FirebaseInAppMessagingAutomaticDataCollectionEnabled
Disable automatic collection — Android (AndroidManifest.xml):
Enable for users who opt in at runtime:
// Call after user consents to data collection
Future enableMessaging() async {
await FirebaseInAppMessaging.instance.setAutomaticDataCollectionEnabled(true);
}
// Call if user revokes consent
Future disableMessaging() async {
await FirebaseInAppMessaging.instance.setAutomaticDataCollectionEnabled(false);
}
- Manually set preferences persist through app restarts, overriding configuration file values.
- For GDPR compliance, disable automatic collection by default and enable only after explicit user consent.
4. Testing and Debugging
Find the Installation ID
- Android: Filter logcat by
FIAM.Headless— look forStarting InAppMessaging runtime with Installation ID YOUR_INSTALLATION_ID. - iOS: Add
-FIRDebugEnabledas a runtime argument in Xcode scheme settings. Look for[Firebase/InAppMessaging][I-IAM180017]in the console.
Test a Campaign
- In the Firebase console, open the campaign and select Test on your Device.
- Enter the Installation ID from the step above.
- The test message appears on the next app launch or foreground event.
- Always test on actual devices for proper rendering and behavior.
- Test each message type (modal, banner, card, image-only) to verify layout on different screen sizes.
5. Campaign Management
- Create campaigns in the Firebase console under Messaging > In-App Messaging.
- Message types: modal, banner, card, or image-only.
Campaign Configuration Workflow
- Design — Select the message type and customize appearance (title, body, image, button).
- Target — Define the audience by app version, language, user segment, or Analytics-based conditions.
- Schedule — Set start/end dates and frequency caps (once, once per session, etc.).
- Trigger — Choose the Analytics event that displays the message (e.g.,
app_open,purchase_complete). - Test — Use device testing before publishing.
- Publish — Launch the campaign and monitor performance.
- Use custom metadata (key-value pairs) to pass additional info accessible when users interact with messages.
- Use A/B testing to optimize message content, timing, and conversion rates.
- Monitor campaign performance (impressions, clicks, conversions) through Firebase console analytics.
References
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: evanca
- Source: evanca/flutter-ai-rules
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.