- How do I install tomatophp/filament-fcm in a Laravel app?
- Install it with composer require tomatophp/filament-fcm, then publish and run its migrations so the FCM device token table exists. Register the plugin in your Filament panel provider so the token resource and send actions appear in the admin navigation. Because it depends on Filament, check the filament/filament constraint on the tag you install against your current major before running composer update.
- Which Laravel and Filament versions does filament-fcm support?
- Support is defined by the composer.json constraints on the release tag you install, not by the README alone. Run composer show tomatophp/filament-fcm and inspect the illuminate and filament/filament requirements before merging. Filament major-version coupling is the main upgrade risk, so pin an exact version and add an end-to-end push test to your Filament upgrade checklist.
- How do I configure Firebase credentials for this package?
- Credentials are configured through the panel settings rather than hardcoded in your codebase, which keeps sensitive keys out of your repository. You will need a Firebase service-account JSON, an APNs auth key for iOS, and a VAPID key pair for web push. Prefer supplying the service-account JSON as a file path from your secret manager instead of inlining JSON in an env variable or image.
- How are FCM device tokens registered and linked to users?
- The package stores registered FCM tokens and associates them with users, so you can target a specific person rather than a raw token string. Your mobile or web client obtains a token from Firebase and posts it to an authenticated endpoint that upserts it against the current user. Check the migration to see whether the table scopes by user_id, a polymorphic notifiable relation, or neither, and whether it carries a tenant column for multi-panel setups.
- Can I send a push notification to one user, a topic, or everybody?
- Yes. The package supports targeting individual devices, specific users, topic-based fan-out, and broadcast messages from the dashboard. You compose and dispatch notifications from the Filament panel without writing custom code or deploying. For programmatic sends, dispatch the same logic from a queued job so the admin request cycle stays fast.
- Does filament-fcm use the FCM HTTP v1 API or the legacy server key?
- This is a go/no-go item you should verify in the source before committing to a spike: read the config and HTTP client code path to confirm whether it accepts a service-account JSON path or a legacy server key. The legacy server-key API is shut down, and failures surface as opaque 401 responses that are hard to diagnose in production. A service-account JSON path is the only configuration you should accept.
- Does it integrate with Laravel notifications as a channel?
- The package is designed as a thin adapter that sits alongside your existing Laravel notification layer, so push becomes another via() channel next to mail and database. That keeps one alert model with multiple delivery surfaces rather than a separate push codebase. Check whether the channel wraps kreait/firebase-php or laravel-notification-channels/fcm, because a known wrapper lets you swap the underlying adapter without touching your notification classes.
- Is filament-fcm safe to run in production?
- Treat it as a bounded pilot rather than platform infrastructure. Keep it behind your own PushChannel interface from day one so a fork or replacement never reaches your notification classes, and pin the exact version to avoid silent breakage on Filament upgrades. The package does not solve credential provisioning, token lifecycle, or delivery analytics, so budget for those regardless of vendor choice.
- How do I handle stale or unregistered FCM tokens?
- Stale tokens degrade delivery silently, so prune any token that comes back as UNREGISTERED and run a nightly sweep based on a last_seen_at column. Track send-error rates per platform and alert on them, since alerts quietly stopping is worse than a visible failure. Also define what delivered means: an FCM message id is accepted, not delivered, so add a client-side received ping for alerts where lateness has a business cost.
- What are the alternatives if filament-fcm is abandoned?
- The package has a single maintainer and a small install base, so no upstream fixes should be assumed. Keep a fork with the upstream remote configured and absorb the dependency behind your own PushChannel interface. The realistic comparison is buying a free MIT thin FCM adapter versus building one; kreait/firebase-php or laravel-notification-channels/fcm are the usual lower-level replacements if you need to swap it out.