协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
capacitor-push-notifications【开发与工程】Guides the agent through setting up and using push notifications in Capacitor apps using Firebase Cloud Messaging via the @capacitor-firebase/messaging plugin. Covers Firebase project setup, plugin installation, platform-specific configuration (Android, iOS, Web), APNs certificate setup, requesting permissions, retrieving FCM tokens, listening for no…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Set up and use push notifications in Capacitor apps using Firebase Cloud Messaging (FCM) via the @capacitor-firebase/messaging plugin.
@capacitor/push-notifications must not be installed — it conflicts with @capacitor-firebase/messaging.android/, ios/), build tools, framework, and package.json dependencies. Only ask the user when something cannot be detected.Two hosted MCP servers serve the current documentation, so both are always ahead of the guidance bundled with this skill:
capacitor.config file, the native Android and iOS projects, and the official plugin APIs.Both expose search_docs and get_doc_page, so pick the server by topic before calling either.
search_docs on the server that owns the topic and read the matching page with get_doc_page before applying the guidance below. Where the two disagree, follow the documentation.claude mcp add --transport http capawesome "https://mcp.capawesome.io/mcp"
claude mcp add --transport http capacitor "https://capacitor-mcp.capawesome.io/mcp"
Neither server needs an account or a token for documentation. See the capawesome-mcp and capacitor-mcp skills for full setup, including the Capawesome Cloud tools.
Auto-detect the following by reading project files — do not ask the user for information that can be inferred:
android/, ios/). These are the platforms to configure.vite.config.ts, angular.json, webpack.config.js, next.config.js, etc.@capacitor/core version from package.json.@capacitor/push-notifications is in package.json. If found, warn the user it must be removed before proceeding:
npm uninstall @capacitor/push-notifications
Check if Firebase is already configured in the project:
android/app/google-services.json exists.ios/App/App/GoogleService-Info.plist exists.If Firebase is not configured for a detected platform, read references/firebase-setup.md and guide the user through the Firebase setup for each missing platform.
npm install @capacitor-firebase/messaging firebase
npx cap sync
Skip if android/ does not exist.
Read references/android-setup.md and apply the Android-specific configuration.
Skip if ios/ does not exist.
Read references/ios-setup.md and apply the iOS-specific configuration. This includes APNs key/certificate setup, AppDelegate.swift modifications, and enabling capabilities.
If the project targets the web (detected via build tool config or user confirmation):
Read references/web-setup.md and apply the Web-specific configuration.
Ask the user if they want to customize iOS foreground notification presentation. If yes, update capacitor.config.json or capacitor.config.ts:
{
"plugins": {
"FirebaseMessaging": {
"presentationOptions": ["alert", "badge", "sound"]
}
}
}
Available options: badge, sound, alert, criticalAlert. Default is ["alert", "badge", "sound"].
Read references/implementation.md and add the push notification code to the project. Adapt imports and structure to match the user's framework.
The implementation covers:
Ask the user which optional features to enable:
For each selected feature, read references/implementation.md and apply the relevant code.
Sync the project:
npx cap sync
Read references/testing.md and guide the user through sending a test notification via the Firebase Console.
@capacitor/push-notifications conflict: The @capacitor-firebase/messaging plugin cannot coexist with @capacitor/push-notifications. Uninstall the conflicting plugin: npm uninstall @capacitor/push-notifications && npx cap sync.AppDelegate.swift contains the required delegate methods.didRegisterForRemoteNotificationsWithDeviceToken not called: Ensure the Push Notifications capability is added in Xcode under Signing & Capabilities. Check that the app's bundle ID matches the one registered in Firebase and Apple Developer portal.google-services.json is at android/app/google-services.json. Verify the Google services Gradle plugin is applied.getToken() fails: Ensure the VAPID key is correct. Ensure firebase-messaging-sw.js exists at the root of the domain. Check that the browser supports the Push API.null: Ensure requestPermissions() was called and returned granted before calling getToken(). On iOS, verify the device is not a simulator (simulators cannot receive push notifications).checkPermissions() returns denied: The user has permanently denied notification permissions. Guide them to re-enable via device settings (Settings > App > Notifications).requestPermissions() must be called explicitly. Earlier Android versions grant notification permission by default.capacitor-app-development — For general Capacitor development topics, troubleshooting, and best practices.capacitor-plugins — For general Capacitor plugin installation and configuration, including other Firebase plugins.capawesome-mcp — Connect an MCP client to the hosted Capawesome MCP server for always-current documentation and Capawesome Cloud management.