vybekiit 0.7.28 → 0.7.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +17286 -17351
- package/dist/global-guidance/language.md +13 -108
- package/dist/global-skills/add-ai/SKILL.md +13 -8
- package/dist/global-skills/add-analytics/SKILL.md +10 -7
- package/dist/global-skills/add-app-clip/SKILL.md +1 -0
- package/dist/global-skills/add-blog/SKILL.md +10 -7
- package/dist/global-skills/add-crud/SKILL.md +8 -0
- package/dist/global-skills/add-files/SKILL.md +10 -7
- package/dist/global-skills/add-images/SKILL.md +10 -7
- package/dist/global-skills/add-language/SKILL.md +11 -8
- package/dist/global-skills/add-notifications/SKILL.md +10 -7
- package/dist/global-skills/add-realtime/SKILL.md +10 -7
- package/dist/global-skills/add-route/SKILL.md +6 -0
- package/dist/global-skills/add-search/SKILL.md +10 -7
- package/dist/global-skills/add-signin/SKILL.md +10 -8
- package/dist/global-skills/add-teams/SKILL.md +14 -10
- package/dist/global-skills/add-upload/SKILL.md +6 -0
- package/dist/global-skills/aws-cdk/SKILL.md +1 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +1 -0
- package/dist/global-skills/aws-serverless/SKILL.md +1 -0
- package/dist/global-skills/aws-serverless/references/compute-decision-edge-cases.md +77 -0
- package/dist/global-skills/back-up-my-code/SKILL.md +16 -5
- package/dist/global-skills/better-auth-best-practices/SKILL.md +1 -0
- package/dist/global-skills/better-auth-security-best-practices/SKILL.md +1 -0
- package/dist/global-skills/building-native-ui/SKILL.md +1 -0
- package/dist/global-skills/buy-domain/SKILL.md +10 -7
- package/dist/global-skills/check-safety/SKILL.md +11 -8
- package/dist/global-skills/claimable-postgres/SKILL.md +1 -0
- package/dist/global-skills/configure-capabilities/SKILL.md +7 -1
- package/dist/global-skills/connect-account/SKILL.md +7 -1
- package/dist/global-skills/connect-account-backend/SKILL.md +6 -0
- package/dist/global-skills/create-auth-skill/SKILL.md +1 -0
- package/dist/global-skills/design-my-data/SKILL.md +12 -5
- package/dist/global-skills/doctor/SKILL.md +17 -10
- package/dist/global-skills/eas-app-stores/SKILL.md +2 -1
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-hosting/SKILL.md +2 -1
- package/dist/global-skills/eas-hosting/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-observe/SKILL.md +2 -1
- package/dist/global-skills/eas-observe/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-simulator/SKILL.md +9 -1
- package/dist/global-skills/eas-simulator/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-simulator/references/logs-and-crashes.md +101 -0
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +4 -0
- package/dist/global-skills/eas-update/SKILL.md +2 -1
- package/dist/global-skills/eas-update/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-update-insights/SKILL.md +2 -1
- package/dist/global-skills/eas-update-insights/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-workflows/SKILL.md +2 -1
- package/dist/global-skills/eas-workflows/agents/openai.yaml +1 -1
- package/dist/global-skills/email-best-practices/SKILL.md +1 -0
- package/dist/global-skills/expo-animation/SKILL.md +2 -1
- package/dist/global-skills/expo-api-routes/SKILL.md +1 -0
- package/dist/global-skills/expo-app-clip/SKILL.md +2 -1
- package/dist/global-skills/expo-brownfield/SKILL.md +2 -1
- package/dist/global-skills/expo-cicd-workflows/SKILL.md +1 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +2 -1
- package/dist/global-skills/expo-deployment/SKILL.md +1 -0
- package/dist/global-skills/expo-design-system/SKILL.md +2 -1
- package/dist/global-skills/expo-dev-client/SKILL.md +2 -1
- package/dist/global-skills/expo-dom/SKILL.md +2 -1
- package/dist/global-skills/expo-examples/SKILL.md +2 -1
- package/dist/global-skills/expo-migrate-module/SKILL.md +2 -1
- package/dist/global-skills/expo-module/SKILL.md +2 -1
- package/dist/global-skills/expo-native-ui/SKILL.md +2 -1
- package/dist/global-skills/expo-observe/SKILL.md +1 -0
- package/dist/global-skills/expo-overview/SKILL.md +2 -1
- package/dist/global-skills/expo-project-structure/SKILL.md +2 -1
- package/dist/global-skills/expo-router/SKILL.md +2 -1
- package/dist/global-skills/expo-skill-eval/SKILL.md +1 -0
- package/dist/global-skills/expo-skill-feedback/SKILL.md +1 -0
- package/dist/global-skills/expo-tailwind-setup/SKILL.md +1 -0
- package/dist/global-skills/expo-ui/SKILL.md +2 -1
- package/dist/global-skills/expo-upgrade/SKILL.md +2 -1
- package/dist/global-skills/expo-web-to-native/SKILL.md +2 -1
- package/dist/global-skills/extension-to-functions-codebase/SKILL.md +1 -0
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +1 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/tts_generation.md +676 -0
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +1 -0
- package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +61 -23
- package/dist/global-skills/firebase-basics/SKILL.md +2 -0
- package/dist/global-skills/firebase-basics/references/android_setup.md +165 -23
- package/dist/global-skills/firebase-crashlytics/SKILL.md +1 -0
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +147 -119
- package/dist/global-skills/firebase-data-connect/SKILL.md +1 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_android.md +81 -25
- package/dist/global-skills/firebase-firestore/SKILL.md +1 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +70 -44
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +63 -27
- package/dist/global-skills/firebase-hosting-basics/SKILL.md +1 -0
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +1 -0
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +87 -95
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +1 -0
- package/dist/global-skills/firestore-rules-creation/SKILL.md +1 -0
- package/dist/global-skills/go-live/SKILL.md +13 -7
- package/dist/global-skills/harden/SKILL.md +15 -10
- package/dist/global-skills/instrument-feature-flags/SKILL.md +1 -0
- package/dist/global-skills/instrument-product-analytics/SKILL.md +1 -0
- package/dist/global-skills/manifest.json +5 -1
- package/dist/global-skills/mongodb-atlas-stream-processing/SKILL.md +1 -0
- package/dist/global-skills/mongodb-connection/SKILL.md +1 -0
- package/dist/global-skills/mongodb-mcp-setup/SKILL.md +1 -0
- package/dist/global-skills/mongodb-natural-language-querying/SKILL.md +1 -0
- package/dist/global-skills/mongodb-qe-size-estimation/SKILL.md +224 -0
- package/dist/global-skills/mongodb-query-optimizer/SKILL.md +1 -0
- package/dist/global-skills/mongodb-schema-design/SKILL.md +1 -0
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +1 -0
- package/dist/global-skills/native-data-fetching/SKILL.md +1 -0
- package/dist/global-skills/neon/SKILL.md +18 -5
- package/dist/global-skills/neon-ai-gateway/SKILL.md +1 -0
- package/dist/global-skills/neon-auth/SKILL.md +1 -0
- package/dist/global-skills/neon-functions/SKILL.md +12 -0
- package/dist/global-skills/neon-functions/references/native-binaries.md +188 -0
- package/dist/global-skills/neon-object-storage/SKILL.md +1 -0
- package/dist/global-skills/neon-postgres/SKILL.md +1 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +1 -0
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -0
- package/dist/global-skills/onboarding/SKILL.md +46 -29
- package/dist/global-skills/plan-my-idea/SKILL.md +7 -1
- package/dist/global-skills/publish-app/SKILL.md +7 -1
- package/dist/global-skills/publish-extension/SKILL.md +7 -1
- package/dist/global-skills/resend/SKILL.md +2 -1
- package/dist/global-skills/resend/references/webhooks.md +2 -0
- package/dist/global-skills/reset-password/SKILL.md +10 -6
- package/dist/global-skills/save-data/SKILL.md +51 -16
- package/dist/global-skills/sentry-sdk-setup/SKILL.md +1 -0
- package/dist/global-skills/sentry-workflow/SKILL.md +1 -0
- package/dist/global-skills/setup-email/SKILL.md +13 -8
- package/dist/global-skills/setup-payments/SKILL.md +19 -15
- package/dist/global-skills/setup-sms/SKILL.md +7 -1
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +10 -6
- package/dist/global-skills/sign-in-with-google/SKILL.md +20 -13
- package/dist/global-skills/sign-in-with-phone/SKILL.md +11 -7
- package/dist/global-skills/stripe-best-practices/SKILL.md +2 -1
- package/dist/global-skills/stripe-best-practices/references/billing.md +2 -0
- package/dist/global-skills/stripe-best-practices/references/payments.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/tax.md +2 -2
- package/dist/global-skills/supabase/CHANGELOG.md +19 -0
- package/dist/global-skills/supabase/SKILL.md +1 -0
- package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +1 -0
- package/dist/global-skills/track-errors/SKILL.md +18 -13
- package/dist/global-skills/update-kit/SKILL.md +7 -1
- package/dist/global-skills/upgrading-expo/SKILL.md +1 -0
- package/dist/global-skills/use-dom/SKILL.md +1 -0
- package/dist/global-skills/use-railway/SKILL.md +6 -5
- package/dist/global-skills/use-railway/references/configure.md +34 -1
- package/dist/global-skills/use-railway/references/iac.md +2 -0
- package/dist/global-skills/use-railway/references/tracing.md +89 -44
- package/dist/global-skills/validate-my-idea/SKILL.md +6 -0
- package/dist/global-skills/vercel-composition-patterns/SKILL.md +1 -0
- package/dist/global-skills/vercel-react-best-practices/SKILL.md +1 -0
- package/dist/global-skills/vybekiit-feedback/SKILL.md +6 -0
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +50 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +17 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +229 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-agent.json +12 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-mongodb.json +12 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-local.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-remote.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +140 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-alpha.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/backend/language.md +345 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +34 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/railway-postgres-vybekiit.md +24 -0
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +88 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +27 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +239 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +111 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/language.md +348 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/README.md +32 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +44 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/chrome-extension-vybekiit.md +28 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +21 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/i18n-vybekiit.md +39 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/responsive-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ui-consistency-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +475 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +32 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +279 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +112 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-stripe.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-catalog-index.mobile.json +36294 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +36 -0
- package/dist/global-skills/vybekiitReferences/mobile/language.md +352 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/README.md +43 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +21 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +41 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/launch-store-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-consistency-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +44 -0
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +91 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +30 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +267 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +63 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +63 -0
- package/dist/global-skills/vybekiitReferences/spa/language.md +217 -0
- package/dist/global-skills/vybekiitReferences/spa/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +138 -0
- package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +54 -0
- package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +366 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-mongodb.json +12 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-local.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-remote.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +174 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-stripe.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/web/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.json +36294 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.mobile.json +36294 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-sources.md +104 -0
- package/dist/global-skills/vybekiitReferences/web/language.md +348 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/README.md +66 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +31 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/aws-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +21 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +48 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cloudflare-email-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/db-presets-vybekiit.md +46 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-cloudflare-vybekiit.md +22 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +23 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +21 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/firebase-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +30 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +39 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/neon-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/nextjs-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/railway-postgres-vybekiit.md +24 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/resend-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/responsive-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ses-vybekiit.md +19 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/shadcn-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/stripe-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +31 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-consistency-vybekiit.md +34 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-routing-vybekiit.md +41 -0
- package/dist/global-skills/watch-my-app/SKILL.md +6 -0
- package/dist/global-skills/web-to-native/SKILL.md +1 -0
- package/dist/global-skills/wire-auth/SKILL.md +6 -0
- package/dist/global-skills/wire-database/SKILL.md +15 -1
- package/dist/global-skills/wire-email/SKILL.md +6 -0
- package/dist/global-skills/wire-payments/SKILL.md +6 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +4 -3
- package/dist/global-skills/workers-best-practices/references/configuration.md +1 -1
- package/dist/global-skills/workers-best-practices/references/platform-apis.md +5 -5
- package/dist/global-skills/workers-best-practices/references/runtime-patterns.md +1 -1
- package/dist/global-skills/wrangler/SKILL.md +27 -24
- package/dist/global-skills/xcode-project-setup/SKILL.md +1 -0
- package/package.json +12 -9
|
@@ -1,155 +1,183 @@
|
|
|
1
|
-
# Firebase Crashlytics Android Setup Guide
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
# Firebase Crashlytics - Android Setup Guide (Kotlin)
|
|
2
|
+
|
|
3
|
+
This guide describes the SDK setup and basic usage patterns for
|
|
4
|
+
Firebase Crashlytics in an Android app using
|
|
5
|
+
Kotlin DSL (`build.gradle.kts`) and Kotlin code.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
IMPORTANT: Before specifically working with Firebase Crashlytics, make sure
|
|
10
|
+
to use the skill and reference `firebase_basics/references/android_setup` to
|
|
11
|
+
ensure the following is done.
|
|
12
|
+
|
|
13
|
+
- The Firebase CLI is available and authenticated.
|
|
14
|
+
- An Android project exists and is registered with a Firebase Project.
|
|
15
|
+
- The Android project has a Firebase config file (`google-services.json`) and
|
|
16
|
+
the Google services Gradle plugin (`google-services`).
|
|
17
|
+
|
|
18
|
+
______________________________________________________________________
|
|
19
|
+
|
|
20
|
+
## 1. Add dependencies to Gradle build files
|
|
21
|
+
|
|
22
|
+
> [!IMPORTANT] **[AGENT] RESOLVING THE SDK & PLUGIN VERSIONS DETERMINISTICALLY**
|
|
23
|
+
> Never guess or hardcode a memorized out-of-date SDK or plugin version.
|
|
24
|
+
> Before adding dependencies, you MUST query the latest available versions
|
|
25
|
+
> directly from the Google Maven Repository:
|
|
26
|
+
>
|
|
27
|
+
> ```bash
|
|
28
|
+
> # Find the latest Firebase Android BoM version
|
|
29
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
30
|
+
>
|
|
31
|
+
> # Find the latest Crashlytics Gradle plugin version
|
|
32
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-crashlytics-gradle/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
33
|
+
>
|
|
34
|
+
> # Find the latest firebase-crashlytics version
|
|
35
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-crashlytics/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
36
|
+
>
|
|
37
|
+
> # Find the latest firebase-crashlytics-ndk version
|
|
38
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-crashlytics-ndk/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
39
|
+
> ```
|
|
40
|
+
>
|
|
41
|
+
> If the dependency is already declared, fetch the exact resolved version
|
|
42
|
+
> currently active in the workspace's build graph:
|
|
43
|
+
>
|
|
44
|
+
> ```bash
|
|
45
|
+
> ./gradlew -q :app:dependencyInsight --dependency firebase-crashlytics --configuration releaseRuntimeClasspath
|
|
46
|
+
> ```
|
|
47
|
+
|
|
48
|
+
These changes are made to the Android project's Gradle files.
|
|
27
49
|
|
|
28
50
|
### Project-level `build.gradle.kts` (`<project>/build.gradle.kts`)
|
|
29
51
|
|
|
30
|
-
Add the latest version of the Crashlytics Gradle plugin to the `plugins` block
|
|
31
|
-
Fetch the
|
|
32
|
-
[latest version from the Google Maven repository](https://maven.google.com/web/index.html?q=firebase-crashlytics-gradle#com.google.firebase:firebase-crashlytics-gradle)
|
|
33
|
-
before adding this.
|
|
52
|
+
Add the latest version of the Crashlytics Gradle plugin to the `plugins` block:
|
|
34
53
|
|
|
35
54
|
```kotlin
|
|
36
55
|
plugins {
|
|
37
56
|
// ... other plugins
|
|
57
|
+
|
|
58
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
38
59
|
id("com.google.firebase.crashlytics") version "<latest_plugin_version>" apply false
|
|
39
60
|
}
|
|
40
61
|
```
|
|
41
62
|
|
|
42
|
-
###
|
|
63
|
+
### Module (app-level) `build.gradle.kts` (`<project>/<app-module>/build.gradle.kts`)
|
|
64
|
+
|
|
65
|
+
1. Add the Crashlytics Gradle plugin to the `plugins` block:
|
|
43
66
|
|
|
44
|
-
|
|
67
|
+
```kotlin
|
|
68
|
+
plugins {
|
|
69
|
+
// ... other plugins
|
|
45
70
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
id("com.google.firebase.crashlytics")
|
|
50
|
-
}
|
|
51
|
-
```
|
|
71
|
+
id("com.google.firebase.crashlytics")
|
|
72
|
+
}
|
|
73
|
+
```
|
|
52
74
|
|
|
53
|
-
|
|
54
|
-
recommended to use the Firebase Bill of Materials (BoM) to manage SDK
|
|
55
|
-
versions. Fetch the
|
|
56
|
-
[latest version from the Google Maven repository](https://maven.google.com/web/index.html?q=firebase-bom#com.google.firebase:firebase-bom)
|
|
57
|
-
before adding this.
|
|
75
|
+
2. Add the Firebase Crashlytics dependency to the `dependencies` block:
|
|
58
76
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
```kotlin
|
|
78
|
+
dependencies {
|
|
79
|
+
// ... other dependencies
|
|
62
80
|
|
|
63
|
-
|
|
64
|
-
|
|
81
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
82
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
65
83
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
84
|
+
// Add the dependency for the Firebase Crashlytics library
|
|
85
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
86
|
+
implementation("com.google.firebase:firebase-crashlytics")
|
|
87
|
+
}
|
|
88
|
+
```
|
|
71
89
|
|
|
72
|
-
|
|
90
|
+
______________________________________________________________________
|
|
73
91
|
|
|
74
|
-
|
|
92
|
+
## 2. *Optional:* Install the NDK SDK to capture native crashes
|
|
75
93
|
|
|
76
|
-
If
|
|
77
|
-
|
|
94
|
+
If the Android project uses native code (C/C++), or includes a library with
|
|
95
|
+
native code, configure Crashlytics to report native crashes.
|
|
78
96
|
|
|
79
97
|
App-level `build.gradle.kts` (`<project>/<app-module>/build.gradle.kts`)
|
|
80
98
|
|
|
81
|
-
1.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
99
|
+
1. Add the `firebase-crashlytics-ndk` dependency:
|
|
100
|
+
|
|
101
|
+
```kotlin
|
|
102
|
+
dependencies {
|
|
103
|
+
// ... other dependencies
|
|
104
|
+
|
|
105
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
106
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
107
|
+
|
|
108
|
+
// Add the dependency for the Firebase Crashlytics NDK library
|
|
109
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
110
|
+
implementation("com.google.firebase:firebase-crashlytics-ndk")
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
2. Enable the `nativeSymbolUpload` flag in the `buildTypes` configuration.
|
|
115
|
+
This will automatically upload symbol files for the native code, which are
|
|
116
|
+
required to symbolicate native crash reports.
|
|
117
|
+
|
|
118
|
+
```kotlin
|
|
119
|
+
android {
|
|
120
|
+
// ... other config
|
|
121
|
+
buildTypes {
|
|
122
|
+
getByName("release") {
|
|
123
|
+
// ...
|
|
124
|
+
firebaseCrashlytics {
|
|
125
|
+
nativeSymbolUploadEnabled = true
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
After these changes, Crashlytics will automatically report crashes in the app's
|
|
111
133
|
native code.
|
|
112
134
|
|
|
113
|
-
|
|
135
|
+
______________________________________________________________________
|
|
136
|
+
|
|
137
|
+
## 3. *Required:* Force a test crash
|
|
138
|
+
|
|
139
|
+
To verify that Crashlytics is correctly set up in the Android project, force a
|
|
140
|
+
test crash in the app.
|
|
141
|
+
|
|
142
|
+
1. Add code to the main activity (e.g., in `onCreate`) to trigger a crash a
|
|
143
|
+
few seconds after app startup:
|
|
114
144
|
|
|
115
|
-
|
|
116
|
-
|
|
145
|
+
```kotlin
|
|
146
|
+
import android.os.Handler
|
|
147
|
+
import android.os.Looper
|
|
117
148
|
|
|
118
|
-
|
|
119
|
-
|
|
149
|
+
// ... in the Activity's onCreate method or similar startup logic
|
|
150
|
+
Handler(Looper.getMainLooper()).postDelayed({
|
|
151
|
+
throw RuntimeException("Test Crash") // Force a crash after 3 seconds
|
|
152
|
+
}, 3000)
|
|
153
|
+
```
|
|
120
154
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
import android.os.Looper
|
|
155
|
+
2. Run the app on a device or emulator. The app should crash after a short
|
|
156
|
+
delay.
|
|
124
157
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
throw RuntimeException("Test Crash") // Force a crash after 3 seconds
|
|
128
|
-
}, 3000)
|
|
129
|
-
```
|
|
158
|
+
3. Restart the app. The Crashlytics SDK will send the crash report to Firebase
|
|
159
|
+
on the next app launch.
|
|
130
160
|
|
|
131
|
-
|
|
132
|
-
delay.
|
|
161
|
+
4. After a few minutes, the crash should be available in Firebase.
|
|
133
162
|
|
|
134
|
-
|
|
135
|
-
|
|
163
|
+
- If the Firebase MCP server is installed, use the `get_report` tool to
|
|
164
|
+
verify that a crash was received.
|
|
165
|
+
- As a fallback, tell the human user to go to the Crashlytics dashboard in
|
|
166
|
+
the Firebase console to verify the new crash report. Provide the human
|
|
167
|
+
user with a constructed Firebase console URL using the Firebase PROJECT_ID
|
|
168
|
+
and the PACKAGE_NAME:
|
|
169
|
+
`https://console.firebase.google.com/u/0/project/PROJECT_ID/crashlytics/app/android:PACKAGE_NAME/issues`
|
|
136
170
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
171
|
+
5. After verifying that Firebase has received the crash report -- either using
|
|
172
|
+
the `get_report` tool or manually viewing it in the Firebase console --
|
|
173
|
+
remove the code that triggers the test crash.
|
|
140
174
|
|
|
141
|
-
|
|
142
|
-
that a crash was received.
|
|
143
|
-
- As a fallback, visit the Crashlytics dashboard in the Firebase console to see
|
|
144
|
-
the new crash report.
|
|
175
|
+
______________________________________________________________________
|
|
145
176
|
|
|
146
|
-
|
|
147
|
-
the `get_report` tool or manually viewing it in the Firebase console - remove
|
|
148
|
-
the code from step 1 that triggers the crash. This prevents the application
|
|
149
|
-
from always crashing on start up after a delay.
|
|
177
|
+
## Optional additional steps
|
|
150
178
|
|
|
151
|
-
###
|
|
179
|
+
### Add custom debugging information
|
|
152
180
|
|
|
153
|
-
Customize reports to help
|
|
154
|
-
|
|
155
|
-
|
|
181
|
+
Customize reports to help better understand what's happening in the app and the
|
|
182
|
+
circumstances around events reported to Crashlytics. See
|
|
183
|
+
https://firebase.google.com/docs/crashlytics/android/customize-crash-reports.md.txt.
|
|
@@ -3,6 +3,7 @@ name: firebase-data-connect
|
|
|
3
3
|
description: Builds and deploys Firebase SQL Connect (aka Firebase Data Connect) backends with PostgreSQL securely. Use when designing schemas with tables and relations, writing authorized queries and mutations, configuring real-time data updates, or generating type-safe SDKs. Use when you need a relational database with Firebase, or when the user mentions SQL Connect or Data Connect.
|
|
4
4
|
metadata:
|
|
5
5
|
category: Databases
|
|
6
|
+
disable-model-invocation: true
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Firebase SQL Connect
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
# Android
|
|
1
|
+
# Firebase SQL Connect - Android Setup Guide (Kotlin)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
This guide describes the SDK setup and basic usage patterns for
|
|
4
|
+
Firebase SQL Connect in an Android app using
|
|
5
|
+
Kotlin DSL (`build.gradle.kts`) and Kotlin code.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
IMPORTANT: Before specifically working with Firebase SQL Connect, make sure
|
|
10
|
+
to use the skill and reference `firebase_basics/references/android_setup` to
|
|
11
|
+
ensure the following is done.
|
|
12
|
+
|
|
13
|
+
- The Firebase CLI is available and authenticated.
|
|
14
|
+
- An Android project exists and is registered with a Firebase Project.
|
|
15
|
+
- The Android project has a Firebase config file (`google-services.json`) and
|
|
16
|
+
the Google services Gradle plugin (`google-services`).
|
|
17
|
+
|
|
18
|
+
## Best practices for agents working with Firebase SQL Connect
|
|
7
19
|
|
|
8
20
|
- **Understand Operation Storage**: SQL Connect queries and mutations are stored
|
|
9
21
|
on the server like Cloud Functions. **Whenever you update operations, you must
|
|
@@ -19,26 +31,66 @@ with the SQL Connect backend.
|
|
|
19
31
|
- **Leverage Coroutines**: Call `.execute()` within a coroutine scope for
|
|
20
32
|
asynchronous operations.
|
|
21
33
|
|
|
22
|
-
|
|
34
|
+
______________________________________________________________________
|
|
35
|
+
|
|
36
|
+
## 1. Add dependencies to Gradle build files
|
|
37
|
+
|
|
38
|
+
> [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY**
|
|
39
|
+
> Never guess or hardcode a memorized out-of-date SDK or plugin version.
|
|
40
|
+
> Before adding dependencies, you MUST query the latest available versions
|
|
41
|
+
> directly from the Google Maven Repository:
|
|
42
|
+
>
|
|
43
|
+
> ```bash
|
|
44
|
+
> # Find the latest Firebase Android BoM version
|
|
45
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
46
|
+
>
|
|
47
|
+
> # Find the latest firebase-dataconnect version
|
|
48
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-dataconnect/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
49
|
+
> ```
|
|
50
|
+
>
|
|
51
|
+
> If the dependency is already declared, fetch the exact resolved version
|
|
52
|
+
> currently active in the workspace's build graph:
|
|
53
|
+
>
|
|
54
|
+
> ```bash
|
|
55
|
+
> ./gradlew -q :app:dependencyInsight --dependency firebase-dataconnect --configuration releaseRuntimeClasspath
|
|
56
|
+
> ```
|
|
57
|
+
|
|
58
|
+
In the **module (app-level)** `build.gradle.kts` (usually
|
|
59
|
+
`<project>/<app-module>/build.gradle.kts`), add the
|
|
60
|
+
Kotlin serialization plugin and the dependency for Firebase SQL Connect:
|
|
61
|
+
|
|
62
|
+
1. Add the Kotlin serialization plugin to the `plugins` block:
|
|
63
|
+
|
|
64
|
+
```kotlin
|
|
65
|
+
plugins {
|
|
66
|
+
// ... other plugins
|
|
67
|
+
kotlin("plugin.serialization") version "1.8.22" // Must match Kotlin version
|
|
68
|
+
}
|
|
69
|
+
```
|
|
23
70
|
|
|
24
|
-
|
|
25
|
-
|
|
71
|
+
2. Add the required Firebase SQL Connect dependencies to the `dependencies`
|
|
72
|
+
block:
|
|
26
73
|
|
|
27
|
-
```kotlin
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
74
|
+
```kotlin
|
|
75
|
+
dependencies {
|
|
76
|
+
// ... other dependencies
|
|
31
77
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
78
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
79
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
80
|
+
|
|
81
|
+
// Add the dependency for the Firebase SQL Connect library
|
|
82
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
83
|
+
implementation("com.google.firebase:firebase-dataconnect")
|
|
84
|
+
|
|
85
|
+
// Add additional required dependencies
|
|
86
|
+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
|
|
87
|
+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
|
|
88
|
+
}
|
|
89
|
+
```
|
|
40
90
|
|
|
41
|
-
|
|
91
|
+
______________________________________________________________________
|
|
92
|
+
|
|
93
|
+
## 2. Initialize
|
|
42
94
|
|
|
43
95
|
Retrieve the generated connector instance:
|
|
44
96
|
|
|
@@ -54,9 +106,13 @@ connector.dataConnect.useEmulator()
|
|
|
54
106
|
// connector.dataConnect.useEmulator(port = 9999)
|
|
55
107
|
```
|
|
56
108
|
|
|
57
|
-
|
|
109
|
+
______________________________________________________________________
|
|
110
|
+
|
|
111
|
+
## 3. Work with SQL Connect
|
|
112
|
+
|
|
113
|
+
### Calling operations
|
|
58
114
|
|
|
59
|
-
#### Basic
|
|
115
|
+
#### Basic query
|
|
60
116
|
|
|
61
117
|
```kotlin
|
|
62
118
|
val result = connector.listMovies.execute()
|
|
@@ -76,7 +132,7 @@ val newMovie = connector.createMovie.execute(
|
|
|
76
132
|
)
|
|
77
133
|
```
|
|
78
134
|
|
|
79
|
-
### Resilient
|
|
135
|
+
### Resilient enum handling
|
|
80
136
|
|
|
81
137
|
Unwrap the `EnumValue` to handle known and unknown cases safely.
|
|
82
138
|
|
|
@@ -91,7 +147,7 @@ result.data.movies.forEach { movie ->
|
|
|
91
147
|
}
|
|
92
148
|
```
|
|
93
149
|
|
|
94
|
-
### Client-
|
|
150
|
+
### Client-side caching
|
|
95
151
|
|
|
96
152
|
Enable caching in `connector.yaml` to reduce requests and support offline
|
|
97
153
|
scenarios.
|
|
@@ -113,7 +169,7 @@ val queryResult = queryRef.execute(QueryRef.FetchPolicy.CACHE_ONLY)
|
|
|
113
169
|
val queryResult = queryRef.execute(QueryRef.FetchPolicy.SERVER_ONLY)
|
|
114
170
|
```
|
|
115
171
|
|
|
116
|
-
### Data
|
|
172
|
+
### Data type mapping reference
|
|
117
173
|
|
|
118
174
|
- GraphQL `String` -> Kotlin `String`
|
|
119
175
|
- GraphQL `Int` -> Kotlin `Int` (32-bit)
|
|
@@ -5,6 +5,7 @@ description: >-
|
|
|
5
5
|
compatibility: This skill is best used with the Firebase CLI, but does not require it. Firebase CLI can be accessed through `npx -y firebase-tools@latest`.
|
|
6
6
|
metadata:
|
|
7
7
|
category: Databases
|
|
8
|
+
disable-model-invocation: true
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Cloud Firestore Database and Operations
|
|
@@ -1,25 +1,45 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Cloud Firestore (Enterprise edition) - Android Setup Guide (Kotlin)
|
|
2
2
|
|
|
3
|
-
This guide
|
|
4
|
-
|
|
3
|
+
This guide describes the SDK setup and basic usage patterns for
|
|
4
|
+
Cloud Firestore (Enterprise edition in Native mode) in an Android app using
|
|
5
|
+
Kotlin DSL (`build.gradle.kts`) and Kotlin code.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
IMPORTANT: Before specifically working with Cloud Firestore, make sure
|
|
10
|
+
to use the skill and reference `firebase_basics/references/android_setup` to
|
|
11
|
+
ensure the following is done.
|
|
12
|
+
|
|
13
|
+
- The Firebase CLI is available and authenticated.
|
|
14
|
+
- An Android project exists and is registered with a Firebase Project.
|
|
15
|
+
- The Android project has a Firebase config file (`google-services.json`) and
|
|
16
|
+
the Google services Gradle plugin (`google-services`).
|
|
5
17
|
|
|
6
18
|
______________________________________________________________________
|
|
7
19
|
|
|
8
|
-
## 1.
|
|
20
|
+
## 1. Provision Firestore
|
|
21
|
+
|
|
22
|
+
Follow the instructions in
|
|
23
|
+
`firebase_firestore/references/enterprise/provisioning` to do the following:
|
|
24
|
+
|
|
25
|
+
- Provision a Firestore instance (Enterprise edition in Native mode)
|
|
26
|
+
- Create or append a `firebase.json` file
|
|
27
|
+
- Create a `firestore.rules` file
|
|
28
|
+
- Create a `firestore.indexes.json` file
|
|
29
|
+
- Deploy database, rules, and indexes
|
|
30
|
+
- Run Firestore locally for development and testing
|
|
9
31
|
|
|
10
|
-
|
|
32
|
+
______________________________________________________________________
|
|
11
33
|
|
|
12
|
-
|
|
13
|
-
the Firebase Kotlin Bill of Materials (BoM) and the dependency for Cloud
|
|
14
|
-
Firestore:
|
|
34
|
+
## 2. Add dependencies to Gradle build files
|
|
15
35
|
|
|
16
|
-
> [!IMPORTANT] **[AGENT] RESOLVING THE
|
|
17
|
-
> Never guess or hardcode a memorized out-of-date SDK version.
|
|
18
|
-
> dependencies, you MUST query the latest available versions
|
|
19
|
-
> Google Maven Repository:
|
|
36
|
+
> [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY**
|
|
37
|
+
> Never guess or hardcode a memorized out-of-date SDK or plugin version.
|
|
38
|
+
> Before adding dependencies, you MUST query the latest available versions
|
|
39
|
+
> directly from the Google Maven Repository:
|
|
20
40
|
>
|
|
21
41
|
> ```bash
|
|
22
|
-
> # Find the latest Firebase BoM version
|
|
42
|
+
> # Find the latest Firebase Android BoM version
|
|
23
43
|
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
24
44
|
>
|
|
25
45
|
> # Find the latest firebase-firestore version
|
|
@@ -33,20 +53,26 @@ Firestore:
|
|
|
33
53
|
> ./gradlew -q :app:dependencyInsight --dependency firebase-firestore --configuration releaseRuntimeClasspath
|
|
34
54
|
> ```
|
|
35
55
|
|
|
56
|
+
In the **module (app-level)** `build.gradle.kts` (usually
|
|
57
|
+
`<project>/<app-module>/build.gradle.kts`), add the dependency for
|
|
58
|
+
Cloud Firestore:
|
|
59
|
+
|
|
36
60
|
```kotlin
|
|
37
61
|
dependencies {
|
|
38
62
|
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
39
63
|
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
40
64
|
|
|
41
65
|
// Add the dependency for the Cloud Firestore library
|
|
42
|
-
// When using the BoM,
|
|
66
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
43
67
|
implementation("com.google.firebase:firebase-firestore")
|
|
44
68
|
}
|
|
45
69
|
```
|
|
46
70
|
|
|
47
|
-
|
|
71
|
+
______________________________________________________________________
|
|
48
72
|
|
|
49
|
-
|
|
73
|
+
## 3. Initialize Firestore
|
|
74
|
+
|
|
75
|
+
Initialize the `FirebaseFirestore` instance in your `ComponentActivity` (Jetpack
|
|
50
76
|
Compose) or standard Activity/Fragment:
|
|
51
77
|
|
|
52
78
|
```kotlin
|
|
@@ -63,7 +89,7 @@ class MainActivity : ComponentActivity() {
|
|
|
63
89
|
super.onCreate(savedInstanceState)
|
|
64
90
|
// Initialize the Firestore instance
|
|
65
91
|
val db = FirebaseFirestore.getInstance("<database-name>")
|
|
66
|
-
|
|
92
|
+
|
|
67
93
|
setContent {
|
|
68
94
|
MaterialTheme {
|
|
69
95
|
Text("Firestore initialized!")
|
|
@@ -75,7 +101,7 @@ class MainActivity : ComponentActivity() {
|
|
|
75
101
|
|
|
76
102
|
______________________________________________________________________
|
|
77
103
|
|
|
78
|
-
##
|
|
104
|
+
## 4. Decision framework: Mandatory pipeline architecture
|
|
79
105
|
|
|
80
106
|
> [!CRITICAL] **MANDATORY PIPELINE ARCHITECTURE (ZERO TOLERANCE)** You are
|
|
81
107
|
> strictly forbidden from using standard collection queries (e.g.,
|
|
@@ -85,34 +111,34 @@ ______________________________________________________________________
|
|
|
85
111
|
> Server-side execution via pipelines is the superior, non-negotiable core
|
|
86
112
|
> architecture for Enterprise instances.
|
|
87
113
|
|
|
88
|
-
### Strict
|
|
89
|
-
|
|
90
|
-
1.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
1.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
1.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
114
|
+
### Strict rules & accountability
|
|
115
|
+
|
|
116
|
+
1. **Mandatory Execution Engine**: Every repository lookup requiring related
|
|
117
|
+
data mapping, textual relevance scoring, or multi-document counting MUST be
|
|
118
|
+
authored natively using the server-side `db.pipeline()` API.
|
|
119
|
+
1. **Required Proof of Use**: In your task execution summaries, you MUST
|
|
120
|
+
explicitly highlight the exact pipeline stages (`.define()`, `.addFields()`,
|
|
121
|
+
`.search()`, `.aggregate()`) integrated into your primary data layer return
|
|
122
|
+
paths. Failure to implement pipelines natively constitutes an immediate
|
|
123
|
+
violation of instructions.
|
|
124
|
+
1. **Check API References**:
|
|
125
|
+
- **Locate**: Locate the standard Maven sources JAR (`-sources.jar`)
|
|
126
|
+
corresponding to the resolved `firebase-firestore` dependency version
|
|
127
|
+
inside your local Gradle or Maven dependency cache.
|
|
128
|
+
- **Extract Once**: Extract the documentation files `pipeline.docs.txt` and
|
|
129
|
+
`expressions.docs.txt` from the root directory of that `-sources.jar`
|
|
130
|
+
archive into a temporary workspace scratch directory of your choice.
|
|
131
|
+
- **Read & Reference**:
|
|
132
|
+
- **Read** the extracted `pipeline.docs.txt` once fully to understand core
|
|
133
|
+
pipeline structure and stage capabilities.
|
|
134
|
+
- **Reference** the extracted `expressions.docs.txt` on-demand for
|
|
135
|
+
specific function overloads and parameters.
|
|
110
136
|
|
|
111
137
|
______________________________________________________________________
|
|
112
138
|
|
|
113
|
-
##
|
|
139
|
+
## 5. Pipeline examples
|
|
114
140
|
|
|
115
|
-
### Relational
|
|
141
|
+
### Relational joins pattern
|
|
116
142
|
|
|
117
143
|
When querying related data (e.g., articles and their author profiles), perform
|
|
118
144
|
the join at the database level via pipeline stages instead of executing multiple
|
|
@@ -142,7 +168,7 @@ val articlesWithAuthProfile = db.pipeline().collection("articles")
|
|
|
142
168
|
)
|
|
143
169
|
```
|
|
144
170
|
|
|
145
|
-
### Full-
|
|
171
|
+
### Full-text search
|
|
146
172
|
|
|
147
173
|
Leverage the database-native `.search()` stage within your pipelines to run
|
|
148
174
|
high-performance text query matches on the database level.
|
|
@@ -164,7 +190,7 @@ val searchPipeline = db.pipeline()
|
|
|
164
190
|
|
|
165
191
|
______________________________________________________________________
|
|
166
192
|
|
|
167
|
-
##
|
|
193
|
+
## 6. Real-time listener & document operations
|
|
168
194
|
|
|
169
195
|
When real-time data sync or transaction-based document mutations are strictly
|
|
170
196
|
required by application specifications, write clean operations as shown in this
|