vybekiit 0.7.29 → 0.7.33

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.
Files changed (262) hide show
  1. package/dist/bin.js +3407 -2769
  2. package/dist/global-guidance/language.md +7 -102
  3. package/dist/global-skills/add-ai/SKILL.md +7 -8
  4. package/dist/global-skills/add-analytics/SKILL.md +4 -7
  5. package/dist/global-skills/add-app-clip/SKILL.md +1 -0
  6. package/dist/global-skills/add-blog/SKILL.md +4 -7
  7. package/dist/global-skills/add-files/SKILL.md +4 -7
  8. package/dist/global-skills/add-images/SKILL.md +4 -7
  9. package/dist/global-skills/add-language/SKILL.md +5 -8
  10. package/dist/global-skills/add-notifications/SKILL.md +4 -7
  11. package/dist/global-skills/add-realtime/SKILL.md +4 -7
  12. package/dist/global-skills/add-search/SKILL.md +4 -7
  13. package/dist/global-skills/add-signin/SKILL.md +4 -8
  14. package/dist/global-skills/add-teams/SKILL.md +4 -7
  15. package/dist/global-skills/aws-cdk/SKILL.md +1 -0
  16. package/dist/global-skills/aws-cloudformation/SKILL.md +1 -0
  17. package/dist/global-skills/aws-serverless/SKILL.md +169 -32
  18. package/dist/global-skills/aws-serverless/references/api-gateway.md +17 -0
  19. package/dist/global-skills/aws-serverless/references/architecture.md +9 -13
  20. package/dist/global-skills/aws-serverless/references/compute-decision-edge-cases.md +77 -0
  21. package/dist/global-skills/aws-serverless/references/lambda.md +3 -3
  22. package/dist/global-skills/aws-serverless/references/orchestration.md +46 -20
  23. package/dist/global-skills/aws-serverless/references/production.md +1 -1
  24. package/dist/global-skills/better-auth-best-practices/SKILL.md +1 -0
  25. package/dist/global-skills/better-auth-security-best-practices/SKILL.md +1 -0
  26. package/dist/global-skills/building-native-ui/SKILL.md +1 -0
  27. package/dist/global-skills/buy-domain/SKILL.md +4 -7
  28. package/dist/global-skills/check-safety/SKILL.md +5 -8
  29. package/dist/global-skills/claimable-postgres/SKILL.md +1 -0
  30. package/dist/global-skills/configure-capabilities/SKILL.md +1 -1
  31. package/dist/global-skills/connect-account/SKILL.md +1 -1
  32. package/dist/global-skills/create-auth-skill/SKILL.md +1 -0
  33. package/dist/global-skills/doctor/SKILL.md +1 -1
  34. package/dist/global-skills/eas-app-stores/SKILL.md +2 -1
  35. package/dist/global-skills/eas-app-stores/agents/openai.yaml +1 -1
  36. package/dist/global-skills/eas-hosting/SKILL.md +2 -1
  37. package/dist/global-skills/eas-hosting/agents/openai.yaml +1 -1
  38. package/dist/global-skills/eas-observe/SKILL.md +2 -1
  39. package/dist/global-skills/eas-observe/agents/openai.yaml +1 -1
  40. package/dist/global-skills/eas-simulator/SKILL.md +24 -16
  41. package/dist/global-skills/eas-simulator/agents/openai.yaml +1 -1
  42. package/dist/global-skills/eas-simulator/references/controllers.md +11 -7
  43. package/dist/global-skills/eas-simulator/references/logs-and-crashes.md +101 -0
  44. package/dist/global-skills/eas-simulator/references/run-your-app.md +8 -8
  45. package/dist/global-skills/eas-simulator/references/troubleshooting.md +14 -6
  46. package/dist/global-skills/eas-update/SKILL.md +2 -1
  47. package/dist/global-skills/eas-update/agents/openai.yaml +1 -1
  48. package/dist/global-skills/eas-update-insights/SKILL.md +2 -1
  49. package/dist/global-skills/eas-update-insights/agents/openai.yaml +1 -1
  50. package/dist/global-skills/eas-workflows/SKILL.md +2 -1
  51. package/dist/global-skills/eas-workflows/agents/openai.yaml +1 -1
  52. package/dist/global-skills/email-best-practices/SKILL.md +1 -0
  53. package/dist/global-skills/email-best-practices/references/sending-reliability.md +17 -22
  54. package/dist/global-skills/expo-animation/SKILL.md +2 -1
  55. package/dist/global-skills/expo-api-routes/SKILL.md +1 -0
  56. package/dist/global-skills/expo-app-clip/SKILL.md +2 -1
  57. package/dist/global-skills/expo-brownfield/SKILL.md +2 -1
  58. package/dist/global-skills/expo-cicd-workflows/SKILL.md +1 -0
  59. package/dist/global-skills/expo-data-fetching/SKILL.md +2 -1
  60. package/dist/global-skills/expo-deployment/SKILL.md +1 -0
  61. package/dist/global-skills/expo-design-system/SKILL.md +2 -1
  62. package/dist/global-skills/expo-dev-client/SKILL.md +2 -1
  63. package/dist/global-skills/expo-dom/SKILL.md +2 -1
  64. package/dist/global-skills/expo-examples/SKILL.md +2 -1
  65. package/dist/global-skills/expo-migrate-module/SKILL.md +2 -1
  66. package/dist/global-skills/expo-module/SKILL.md +2 -1
  67. package/dist/global-skills/expo-native-ui/SKILL.md +2 -1
  68. package/dist/global-skills/expo-observe/SKILL.md +1 -0
  69. package/dist/global-skills/expo-overview/SKILL.md +2 -1
  70. package/dist/global-skills/expo-project-structure/SKILL.md +2 -1
  71. package/dist/global-skills/expo-router/SKILL.md +2 -1
  72. package/dist/global-skills/expo-skill-eval/SKILL.md +1 -0
  73. package/dist/global-skills/expo-skill-feedback/SKILL.md +1 -0
  74. package/dist/global-skills/expo-tailwind-setup/SKILL.md +1 -0
  75. package/dist/global-skills/expo-ui/SKILL.md +2 -1
  76. package/dist/global-skills/expo-upgrade/SKILL.md +2 -1
  77. package/dist/global-skills/expo-web-to-native/SKILL.md +2 -1
  78. package/dist/global-skills/extension-to-functions-codebase/SKILL.md +2 -0
  79. package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +162 -76
  80. package/dist/global-skills/firebase-ai-logic-basics/references/flutter_setup.md +37 -0
  81. package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +97 -3
  82. package/dist/global-skills/firebase-ai-logic-basics/references/tts_generation.md +676 -0
  83. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +88 -3
  84. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +91 -3
  85. package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +6 -1
  86. package/dist/global-skills/firebase-auth-basics/SKILL.md +12 -6
  87. package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +61 -23
  88. package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
  89. package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +22 -19
  90. package/dist/global-skills/firebase-auth-basics/references/security_rules.md +2 -2
  91. package/dist/global-skills/firebase-basics/SKILL.md +8 -2
  92. package/dist/global-skills/firebase-basics/references/android_setup.md +229 -23
  93. package/dist/global-skills/firebase-basics/references/ios_setup.md +57 -0
  94. package/dist/global-skills/firebase-basics/references/web_setup.md +52 -0
  95. package/dist/global-skills/firebase-crashlytics/SKILL.md +2 -0
  96. package/dist/global-skills/firebase-crashlytics/references/android_setup.md +99 -71
  97. package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +1 -0
  98. package/dist/global-skills/firebase-data-connect/SKILL.md +2 -0
  99. package/dist/global-skills/firebase-data-connect/reference/config.md +8 -8
  100. package/dist/global-skills/firebase-data-connect/reference/realtime.md +4 -1
  101. package/dist/global-skills/firebase-data-connect/reference/sdk_android.md +84 -29
  102. package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +8 -3
  103. package/dist/global-skills/firebase-data-connect/reference/security.md +13 -13
  104. package/dist/global-skills/firebase-firestore/SKILL.md +18 -7
  105. package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +47 -21
  106. package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +2 -1
  107. package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +63 -27
  108. package/dist/global-skills/firebase-firestore/references/standard/indexes.md +2 -1
  109. package/dist/global-skills/firebase-hosting-basics/SKILL.md +2 -0
  110. package/dist/global-skills/firebase-remote-config-basics/SKILL.md +3 -1
  111. package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +83 -92
  112. package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +8 -6
  113. package/dist/global-skills/firestore-rules-creation/SKILL.md +23 -10
  114. package/dist/global-skills/go-live/SKILL.md +7 -7
  115. package/dist/global-skills/harden/SKILL.md +7 -10
  116. package/dist/global-skills/instrument-feature-flags/SKILL.md +1 -0
  117. package/dist/global-skills/instrument-product-analytics/SKILL.md +1 -0
  118. package/dist/global-skills/manifest.json +2 -1
  119. package/dist/global-skills/mongodb-atlas-stream-processing/SKILL.md +1 -0
  120. package/dist/global-skills/mongodb-connection/SKILL.md +1 -0
  121. package/dist/global-skills/mongodb-mcp-setup/SKILL.md +1 -0
  122. package/dist/global-skills/mongodb-natural-language-querying/SKILL.md +1 -0
  123. package/dist/global-skills/mongodb-qe-size-estimation/SKILL.md +224 -0
  124. package/dist/global-skills/mongodb-query-optimizer/SKILL.md +1 -0
  125. package/dist/global-skills/mongodb-schema-design/SKILL.md +1 -0
  126. package/dist/global-skills/mongodb-search-and-ai/SKILL.md +1 -0
  127. package/dist/global-skills/native-data-fetching/SKILL.md +1 -0
  128. package/dist/global-skills/neon/SKILL.md +34 -5
  129. package/dist/global-skills/neon-ai-gateway/SKILL.md +44 -14
  130. package/dist/global-skills/neon-auth/SKILL.md +1 -0
  131. package/dist/global-skills/neon-functions/SKILL.md +12 -0
  132. package/dist/global-skills/neon-functions/references/native-binaries.md +188 -0
  133. package/dist/global-skills/neon-object-storage/SKILL.md +1 -0
  134. package/dist/global-skills/neon-postgres/SKILL.md +2 -1
  135. package/dist/global-skills/neon-postgres/references/full-text-search.md +27 -17
  136. package/dist/global-skills/neon-postgres/references/hybrid-search.md +19 -15
  137. package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +99 -14
  138. package/dist/global-skills/neon-postgres/references/vector-search.md +93 -10
  139. package/dist/global-skills/neon-postgres-branches/SKILL.md +1 -0
  140. package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -0
  141. package/dist/global-skills/onboarding/SKILL.md +14 -13
  142. package/dist/global-skills/plan-my-idea/SKILL.md +1 -1
  143. package/dist/global-skills/publish-app/SKILL.md +1 -1
  144. package/dist/global-skills/publish-extension/SKILL.md +1 -1
  145. package/dist/global-skills/resend/SKILL.md +5 -15
  146. package/dist/global-skills/resend/references/domains.md +1 -1
  147. package/dist/global-skills/resend/references/installation.md +3 -3
  148. package/dist/global-skills/resend/references/sending/best-practices.md +3 -3
  149. package/dist/global-skills/resend/references/sending/single-email-examples.md +3 -3
  150. package/dist/global-skills/resend/references/webhooks.md +2 -0
  151. package/dist/global-skills/reset-password/SKILL.md +4 -6
  152. package/dist/global-skills/save-data/SKILL.md +3 -0
  153. package/dist/global-skills/sentry-sdk-setup/SKILL.md +1 -0
  154. package/dist/global-skills/sentry-workflow/SKILL.md +1 -0
  155. package/dist/global-skills/setup-email/SKILL.md +7 -8
  156. package/dist/global-skills/setup-payments/SKILL.md +10 -12
  157. package/dist/global-skills/setup-sms/SKILL.md +1 -1
  158. package/dist/global-skills/sign-in-with-email-link/SKILL.md +4 -6
  159. package/dist/global-skills/sign-in-with-google/SKILL.md +14 -13
  160. package/dist/global-skills/sign-in-with-phone/SKILL.md +5 -7
  161. package/dist/global-skills/stripe-best-practices/SKILL.md +20 -19
  162. package/dist/global-skills/stripe-best-practices/references/billing.md +2 -0
  163. package/dist/global-skills/stripe-best-practices/references/payments.md +1 -1
  164. package/dist/global-skills/stripe-best-practices/references/tax.md +27 -15
  165. package/dist/global-skills/supabase/CHANGELOG.md +19 -0
  166. package/dist/global-skills/supabase/SKILL.md +1 -0
  167. package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +1 -0
  168. package/dist/global-skills/track-errors/SKILL.md +12 -13
  169. package/dist/global-skills/update-kit/SKILL.md +1 -1
  170. package/dist/global-skills/upgrading-expo/SKILL.md +1 -0
  171. package/dist/global-skills/use-dom/SKILL.md +1 -0
  172. package/dist/global-skills/use-railway/SKILL.md +9 -8
  173. package/dist/global-skills/use-railway/references/configure.md +34 -1
  174. package/dist/global-skills/use-railway/references/iac.md +3 -0
  175. package/dist/global-skills/use-railway/references/tracing.md +97 -44
  176. package/dist/global-skills/vercel-composition-patterns/SKILL.md +1 -0
  177. package/dist/global-skills/vercel-react-best-practices/SKILL.md +1 -0
  178. package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +11 -3
  179. package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +1 -1
  180. package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +229 -0
  181. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +11 -2
  182. package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +1 -1
  183. package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +1 -1
  184. package/dist/global-skills/vybekiitReferences/backend/language.md +7 -102
  185. package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +2 -2
  186. package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +1 -1
  187. package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +1 -1
  188. package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +11 -3
  189. package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +1 -1
  190. package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +239 -0
  191. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +10 -1
  192. package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +1 -1
  193. package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +1 -1
  194. package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +11 -8
  195. package/dist/global-skills/vybekiitReferences/extension/language.md +7 -92
  196. package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +9 -1
  197. package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +1 -0
  198. package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +1 -1
  199. package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +1 -1
  200. package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +1 -1
  201. package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +27 -12
  202. package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +1 -1
  203. package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +279 -0
  204. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +10 -1
  205. package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +1 -1
  206. package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +1 -1
  207. package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +1 -1
  208. package/dist/global-skills/vybekiitReferences/mobile/language.md +7 -93
  209. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +1 -0
  210. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +1 -1
  211. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +1 -1
  212. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +1 -1
  213. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +1 -1
  214. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +2 -2
  215. package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +11 -3
  216. package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +1 -1
  217. package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +267 -0
  218. package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +10 -1
  219. package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +1 -1
  220. package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +11 -8
  221. package/dist/global-skills/vybekiitReferences/spa/language.md +7 -11
  222. package/dist/global-skills/vybekiitReferences/web/AGENTS.md +15 -30
  223. package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +1 -1
  224. package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +366 -0
  225. package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +11 -2
  226. package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +1 -1
  227. package/dist/global-skills/vybekiitReferences/web/language.md +7 -102
  228. package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +1 -1
  229. package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +1 -1
  230. package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +1 -1
  231. package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +1 -1
  232. package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +9 -1
  233. package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +1 -1
  234. package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +1 -1
  235. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +2 -2
  236. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +2 -2
  237. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +2 -2
  238. package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +1 -0
  239. package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +1 -1
  240. package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +1 -1
  241. package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +1 -1
  242. package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +1 -1
  243. package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +1 -1
  244. package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +1 -1
  245. package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +1 -1
  246. package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +1 -1
  247. package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +1 -1
  248. package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +1 -1
  249. package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +1 -1
  250. package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +1 -1
  251. package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +1 -1
  252. package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +1 -3
  253. package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +1 -1
  254. package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +1 -1
  255. package/dist/global-skills/web-to-native/SKILL.md +1 -0
  256. package/dist/global-skills/workers-best-practices/SKILL.md +5 -4
  257. package/dist/global-skills/workers-best-practices/references/configuration.md +1 -1
  258. package/dist/global-skills/workers-best-practices/references/platform-apis.md +5 -5
  259. package/dist/global-skills/workers-best-practices/references/runtime-patterns.md +1 -1
  260. package/dist/global-skills/wrangler/SKILL.md +28 -25
  261. package/dist/global-skills/xcode-project-setup/SKILL.md +2 -0
  262. package/package.json +10 -8
@@ -47,15 +47,15 @@ schema:
47
47
  connectorDirs: ["./connector"]
48
48
  ```
49
49
 
50
- | Field | Description |
51
- | ------------------- | ---------------------------------------------------------------------------------------- |
52
- | `specVersion` | Always `"v1"` |
53
- | `serviceId` | Unique identifier for the service |
54
- | `location` | GCP region (us-central1, us-east4, europe-west1, etc.) |
50
+ | Field | Description |
51
+ | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
52
+ | `specVersion` | Always `"v1"` |
53
+ | `serviceId` | Unique identifier for the service |
54
+ | `location` | GCP region (us-central1, us-east4, europe-west1, etc.) |
55
55
  | `schema.datasource.postgresql.schemaValidation` | Deployment mode: `"STRICT"` (must match exactly) or `"COMPATIBLE"` (backward compatible) |
56
- | `schema.source` | Path to schema directory |
57
- | `schema.datasource` | PostgreSQL connection config |
58
- | `connectorDirs` | List of connector directories |
56
+ | `schema.source` | Path to schema directory |
57
+ | `schema.datasource` | PostgreSQL connection config |
58
+ | `connectorDirs` | List of connector directories |
59
59
 
60
60
  ### Cloud SQL Configuration
61
61
 
@@ -23,7 +23,10 @@ based on what you're querying:
23
23
  List queries require explicit `@refresh` to tell SQL Connect which mutations
24
24
  affect the result set.
25
25
 
26
- Clients consume all three using `subscribe()` instead of `execute()`. See [sdk_web.md](sdk_web.md), [sdk_android.md](sdk_android.md), [sdk_ios.md](sdk_ios.md), and [sdk_flutter.md](sdk_flutter.md) for per-platform subscribe patterns.
26
+ Clients consume all three using `subscribe()` instead of `execute()`. See
27
+ [sdk_web.md](sdk_web.md), [sdk_android.md](sdk_android.md),
28
+ [sdk_ios.md](sdk_ios.md), and [sdk_flutter.md](sdk_flutter.md) for per-platform
29
+ subscribe patterns.
27
30
 
28
31
  ______________________________________________________________________
29
32
 
@@ -1,9 +1,20 @@
1
- # Android SDK
1
+ # Firebase SQL Connect - Android Setup Guide (Kotlin)
2
2
 
3
- Consult this file when writing Android application code (Kotlin) that interacts
4
- with the SQL Connect backend.
3
+ This guide describes the SDK setup and basic usage patterns for Firebase SQL
4
+ Connect in an Android app using Kotlin DSL (`build.gradle.kts`) and Kotlin code.
5
5
 
6
- ### Best Practices for Agents
6
+ ## Prerequisites
7
+
8
+ IMPORTANT: Before specifically working with Firebase SQL Connect, make sure to
9
+ use the skill and reference `firebase_basics/references/android_setup` to ensure
10
+ the following is done.
11
+
12
+ - The Firebase CLI is available and authenticated.
13
+ - An Android project exists and is registered with a Firebase Project.
14
+ - The Android project has a Firebase config file (`google-services.json`) and
15
+ the Google services Gradle plugin (`google-services`).
16
+
17
+ ## Best practices for agents working with Firebase SQL Connect
7
18
 
8
19
  - **Understand Operation Storage**: SQL Connect queries and mutations are stored
9
20
  on the server like Cloud Functions. **Whenever you update operations, you must
@@ -19,26 +30,66 @@ with the SQL Connect backend.
19
30
  - **Leverage Coroutines**: Call `.execute()` within a coroutine scope for
20
31
  asynchronous operations.
21
32
 
22
- ### Dependencies (build.gradle.kts)
23
-
24
- Ensure you have the Kotlin Serialization plugin and standard SQL Connect
25
- dependencies:
26
-
27
- ```kotlin
28
- plugins {
29
- kotlin("plugin.serialization") version "1.8.22" // Must match Kotlin version
30
- }
31
-
32
- dependencies {
33
- // [AGENT] Fetch the latest available BoM version from https://firebase.google.com/support/release-notes/android before adding this
34
- implementation(platform("com.google.firebase:firebase-bom:34.12.0"))
35
- implementation("com.google.firebase:firebase-dataconnect")
36
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
37
- implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
38
- }
39
- ```
40
-
41
- ### Initialization
33
+ ______________________________________________________________________
34
+
35
+ ## 1. Add dependencies to Gradle build files
36
+
37
+ > [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY** Never
38
+ > guess or hardcode a memorized out-of-date SDK or plugin version. Before adding
39
+ > dependencies, you MUST query the latest available versions directly from the
40
+ > Google Maven Repository:
41
+ >
42
+ > ```bash
43
+ > # Find the latest Firebase Android BoM version
44
+ > curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
45
+ >
46
+ > # Find the latest firebase-dataconnect version
47
+ > curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-dataconnect/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
48
+ > ```
49
+ >
50
+ > If the dependency is already declared, fetch the exact resolved version
51
+ > currently active in the workspace's build graph:
52
+ >
53
+ > ```bash
54
+ > ./gradlew -q :app:dependencyInsight --dependency firebase-dataconnect --configuration releaseRuntimeClasspath
55
+ > ```
56
+
57
+ In the **module (app-level)** `build.gradle.kts` (usually
58
+ `<project>/<app-module>/build.gradle.kts`), add the Kotlin serialization plugin
59
+ and the dependency for Firebase SQL Connect:
60
+
61
+ 1. Add the Kotlin serialization plugin to the `plugins` block:
62
+
63
+ ```kotlin
64
+ plugins {
65
+ // ... other plugins
66
+ kotlin("plugin.serialization") version "1.8.22" // Must match Kotlin version
67
+ }
68
+ ```
69
+
70
+ 1. Add the required Firebase SQL Connect dependencies to the `dependencies`
71
+ block:
72
+
73
+ ```kotlin
74
+ dependencies {
75
+ // ... other dependencies
76
+
77
+ // [AGENT] Fetch the latest resolved version using the Gradle command above
78
+ implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
79
+
80
+ // Add the dependency for the Firebase SQL Connect library
81
+ // When using the BoM, don't specify versions in Firebase library dependencies
82
+ implementation("com.google.firebase:firebase-dataconnect")
83
+
84
+ // Add additional required dependencies
85
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
86
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
87
+ }
88
+ ```
89
+
90
+ ______________________________________________________________________
91
+
92
+ ## 2. Initialize
42
93
 
43
94
  Retrieve the generated connector instance:
44
95
 
@@ -54,9 +105,13 @@ connector.dataConnect.useEmulator()
54
105
  // connector.dataConnect.useEmulator(port = 9999)
55
106
  ```
56
107
 
57
- ### Calling Operations
108
+ ______________________________________________________________________
109
+
110
+ ## 3. Work with SQL Connect
111
+
112
+ ### Calling operations
58
113
 
59
- #### Basic Query
114
+ #### Basic query
60
115
 
61
116
  ```kotlin
62
117
  val result = connector.listMovies.execute()
@@ -76,7 +131,7 @@ val newMovie = connector.createMovie.execute(
76
131
  )
77
132
  ```
78
133
 
79
- ### Resilient Enum Handling
134
+ ### Resilient enum handling
80
135
 
81
136
  Unwrap the `EnumValue` to handle known and unknown cases safely.
82
137
 
@@ -91,7 +146,7 @@ result.data.movies.forEach { movie ->
91
146
  }
92
147
  ```
93
148
 
94
- ### Client-Side Caching
149
+ ### Client-side caching
95
150
 
96
151
  Enable caching in `connector.yaml` to reduce requests and support offline
97
152
  scenarios.
@@ -113,7 +168,7 @@ val queryResult = queryRef.execute(QueryRef.FetchPolicy.CACHE_ONLY)
113
168
  val queryResult = queryRef.execute(QueryRef.FetchPolicy.SERVER_ONLY)
114
169
  ```
115
170
 
116
- ### Data Type Mapping Reference
171
+ ### Data type mapping reference
117
172
 
118
173
  - GraphQL `String` -> Kotlin `String`
119
174
  - GraphQL `Int` -> Kotlin `Int` (32-bit)
@@ -106,9 +106,14 @@ await executeQuery(queryRef, { fetchPolicy: QueryFetchPolicy.SERVER_ONLY });
106
106
 
107
107
  ### Subscriptions (Realtime)
108
108
 
109
- Use `subscribe()` to receive live updates. It accepts either an observer object (`SubscriptionOptions`) or positional callbacks:
110
-
111
- > **Note:** When passing an observer object literal, the error callback property is named **`onErr`** (`{ onNext, onErr, onComplete }`). Passing `onError` in an object literal fails TypeScript compilation (`TS2769`) and is ignored at runtime. The name `onError` is only used as the parameter name in the positional callback overload (`subscribe(ref, onNext, onError, onComplete)`).
109
+ Use `subscribe()` to receive live updates. It accepts either an observer object
110
+ (`SubscriptionOptions`) or positional callbacks:
111
+
112
+ > **Note:** When passing an observer object literal, the error callback property
113
+ > is named **`onErr`** (`{ onNext, onErr, onComplete }`). Passing `onError` in
114
+ > an object literal fails TypeScript compilation (`TS2769`) and is ignored at
115
+ > runtime. The name `onError` is only used as the parameter name in the
116
+ > positional callback overload (`subscribe(ref, onNext, onError, onComplete)`).
112
117
 
113
118
  #### Web (Vanilla JS / TypeScript)
114
119
 
@@ -32,13 +32,13 @@ ______________________________________________________________________
32
32
 
33
33
  ## Access Levels
34
34
 
35
- | Level | Who Can Access | CEL Equivalent |
36
- | --------------------- | -------------------------------------------- | ------------------------------------------------------------------------ |
37
- | `PUBLIC` | Anyone, authenticated or not | `true` |
38
- | `USER_ANON` | Any authenticated user (including anonymous) | `auth != null` |
39
- | `USER` | Authenticated users (excludes anonymous) | `auth != null && auth.token.firebase.sign_in_provider != 'anonymous'` |
40
- | `USER_EMAIL_VERIFIED` | Users with verified email | `auth != null && auth.token.email_verified` |
41
- | `NO_ACCESS` | Admin SDK only | `false` |
35
+ | Level | Who Can Access | CEL Equivalent |
36
+ | --------------------- | -------------------------------------------- | --------------------------------------------------------------------- |
37
+ | `PUBLIC` | Anyone, authenticated or not | `true` |
38
+ | `USER_ANON` | Any authenticated user (including anonymous) | `auth != null` |
39
+ | `USER` | Authenticated users (excludes anonymous) | `auth != null && auth.token.firebase.sign_in_provider != 'anonymous'` |
40
+ | `USER_EMAIL_VERIFIED` | Users with verified email | `auth != null && auth.token.email_verified` |
41
+ | `NO_ACCESS` | Admin SDK only | `false` |
42
42
 
43
43
  > **Important:** Levels like `USER` are starting points. Always add filters or
44
44
  > expressions to verify the user can access specific data.
@@ -49,12 +49,12 @@ ______________________________________________________________________
49
49
 
50
50
  ### Available Bindings
51
51
 
52
- | Binding | Description |
53
- | ----------------------- | ------------------------------------------ |
54
- | `auth.uid` | Current user's Firebase UID |
55
- | `auth.token` | Auth token claims (see below) |
56
- | `vars` | Operation variables (e.g., `vars.movieId`) |
57
- | `request.time` | Server timestamp |
52
+ | Binding | Description |
53
+ | ----------------------- | ----------------------------------------------------------------- |
54
+ | `auth.uid` | Current user's Firebase UID |
55
+ | `auth.token` | Auth token claims (see below) |
56
+ | `vars` | Operation variables (e.g., `vars.movieId`) |
57
+ | `request.time` | Server timestamp |
58
58
  | `request.operationName` | Name of the GraphQL operation being executed (e.g., `"GetMovie"`) |
59
59
 
60
60
  ### auth.token Fields
@@ -4,15 +4,23 @@ description: >-
4
4
  Sets up, manages, queries, and configures Cloud Firestore databases (Standard/Enterprise edition), including data modeling, security rules, indexes, and SDK integrations (Web, Python, iOS, Android, Flutter). Use when creating/listing Firestore databases, defining data models/indexes, writing SDK queries, or integrating Firestore SDKs. For authoring or modifying Firestore Security Rules (firestore.rules), delegate to the firestore-rules-author subagent if subagent delegation is available, or use firestore-rules-creation otherwise. Don't use for Firebase Hosting, Data Connect, Auth, Storage/GCS, Crashlytics, Functions, or BigQuery.
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
+ author: Google LLC
7
8
  category: Databases
9
+ disable-model-invocation: true
8
10
  ---
9
11
 
10
12
  # Cloud Firestore Database and Operations
11
13
 
12
- > [!IMPORTANT] **Security Rules Authoring (`firestore.rules`)**
13
- > Whenever your task requires creating, authoring, or modifying `firestore.rules`:
14
- > - **If subagent delegation AND the `firestore-rules-author` subagent are available**: delegate authoring `firestore.rules` to the `firestore-rules-author` subagent rather than writing `firestore.rules` directly in the main agent.
15
- > - **If subagent delegation is unavailable** (e.g., subagents not enabled in the IDE) **OR `firestore-rules-author` is not installed**: read and follow the `firestore-rules-creation` skill to write `firestore.rules` directly.
14
+ > [!IMPORTANT] **Security Rules Authoring (`firestore.rules`)** Whenever your
15
+ > task requires creating, authoring, or modifying `firestore.rules`:
16
+ >
17
+ > - **If subagent delegation AND the `firestore-rules-author` subagent are
18
+ > available**: delegate authoring `firestore.rules` to the
19
+ > `firestore-rules-author` subagent rather than writing `firestore.rules`
20
+ > directly in the main agent.
21
+ > - **If subagent delegation is unavailable** (e.g., subagents not enabled in
22
+ > the IDE) **OR `firestore-rules-author` is not installed**: read and follow
23
+ > the `firestore-rules-creation` skill to write `firestore.rules` directly.
16
24
 
17
25
  Before setting up dependencies, writing data models, or configuring security
18
26
  rules, you MUST always identify the Firestore instance edition.
@@ -29,12 +37,15 @@ npx -y firebase-tools@latest firestore:databases:list
29
37
 
30
38
  1. For each database found, inspect its edition and details:
31
39
 
32
- ```bash
33
- npx -y firebase-tools@latest firestore:databases:get <database-id>
34
- ```
40
+ ```bash
41
+ npx -y firebase-tools@latest firestore:databases:get <database-id>
42
+ ```
43
+
35
44
  1. Ask the user which database instance they wish to target or if they would
36
45
  prefer to create a new instance.
46
+
37
47
  1. Once the target instance is established:
48
+
38
49
  - If the **`edition`** is `STANDARD`, follow the guides under
39
50
  `references/standard/`.
40
51
  - If the **`edition`** is `ENTERPRISE` or native mode, follow the guides
@@ -1,25 +1,45 @@
1
- # Android SDK Usage (Enterprise Native Mode)
1
+ # Cloud Firestore (Enterprise edition) - Android Setup Guide (Kotlin)
2
2
 
3
- This guide covers the Firestore Android SDK (Kotlin) setup and usage patterns
4
- optimized for Firestore Enterprise edition in Native mode.
3
+ This guide describes the SDK setup and basic usage patterns for Cloud Firestore
4
+ (Enterprise edition in Native mode) in an Android app using Kotlin DSL
5
+ (`build.gradle.kts`) and Kotlin code.
6
+
7
+ ## Prerequisites
8
+
9
+ IMPORTANT: Before specifically working with Cloud Firestore, make sure to use
10
+ the skill and reference `firebase_basics/references/android_setup` to ensure the
11
+ 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. Initialization
20
+ ## 1. Provision Firestore
9
21
 
10
- ### Add Dependencies
22
+ Follow the instructions in
23
+ `firebase_firestore/references/enterprise/provisioning` to do the following:
11
24
 
12
- In your module-level `build.gradle.kts` (usually `app/build.gradle.kts`), add
13
- the Firebase Kotlin Bill of Materials (BoM) and the dependency for Cloud
14
- Firestore:
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
31
+
32
+ ______________________________________________________________________
15
33
 
16
- > [!IMPORTANT] **[AGENT] RESOLVING THE RESOLVED SDK VERSION DETERMINISTICALLY**
17
- > Never guess or hardcode a memorized out-of-date SDK version. Before adding
34
+ ## 2. Add dependencies to Gradle build files
35
+
36
+ > [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY** Never
37
+ > guess or hardcode a memorized out-of-date SDK or plugin version. Before adding
18
38
  > dependencies, you MUST query the latest available versions directly from the
19
39
  > 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 Cloud
58
+ 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, you don't specify versions in Firebase library dependencies
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
- ### Initialize Firestore
71
+ ______________________________________________________________________
72
+
73
+ ## 3. Initialize Firestore
48
74
 
49
- Initialize the `FirebaseFirestore` instance in your ComponentActivity (Jetpack
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
- ## 2. Decision Framework: Mandatory Pipeline Architecture
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,7 +111,7 @@ ______________________________________________________________________
85
111
  > Server-side execution via pipelines is the superior, non-negotiable core
86
112
  > architecture for Enterprise instances.
87
113
 
88
- ### Strict Rules & Accountability
114
+ ### Strict rules & accountability
89
115
 
90
116
  1. **Mandatory Execution Engine**: Every repository lookup requiring related
91
117
  data mapping, textual relevance scoring, or multi-document counting MUST be
@@ -110,9 +136,9 @@ ______________________________________________________________________
110
136
 
111
137
  ______________________________________________________________________
112
138
 
113
- ## 3. Pipeline Examples
139
+ ## 5. Pipeline examples
114
140
 
115
- ### Relational Joins Pattern
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-Text Search
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
- ## 4. Real-Time Listener & Document Operations
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
@@ -53,7 +53,8 @@ create index entries with duplicate values.
53
53
  - Index Required: **Composite Index** on field `a` and `b`
54
54
  - **Multiple Ranges**: `where("a", ">", 1).where("b", ">", 2)`
55
55
  - Index Required: **Composite Index** on field `a` and `b`
56
- - **Array Contains + Equality**: `where("tags", "array-contains", "news").where("active", "==", true)`
56
+ - **Array Contains + Equality**:
57
+ `where("tags", "array-contains", "news").where("active", "==", true)`
57
58
  - Index Required: **Composite Index** on field `tags` and `active`
58
59
 
59
60
  If no indexes is present, Firestore Enterprise will perform a full collection
@@ -1,40 +1,78 @@
1
- # Cloud Firestore on Android (Kotlin)
1
+ # Cloud Firestore (Standard edition) - Android Setup Guide (Kotlin)
2
2
 
3
- This guide walks you through using Cloud Firestore in your Android app using
4
- Kotlin.
3
+ This guide describes the SDK setup and basic usage patterns for Cloud Firestore
4
+ (Standard edition) in an Android app using Kotlin DSL (`build.gradle.kts`) and
5
+ Kotlin code.
5
6
 
6
- ### Enable Firestore via CLI
7
+ ## Prerequisites
7
8
 
8
- Before adding dependencies in your app, make sure you enable the Firestore
9
- service in your Firebase Project using the Firebase CLI:
9
+ IMPORTANT: Before specifically working with Cloud Firestore, make sure to use
10
+ the skill and reference `firebase_basics/references/android_setup` to ensure the
11
+ following is done.
10
12
 
11
- ```bash
12
- npx -y firebase-tools@latest init firestore
13
- ```
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`).
14
17
 
15
18
  ______________________________________________________________________
16
19
 
17
- ### 1. Add Dependencies
20
+ ## 1. Provision Firestore
21
+
22
+ Follow the instructions in `firebase_firestore/references/standard/provisioning`
23
+ to do the following:
18
24
 
19
- In your module-level `build.gradle.kts` (usually `app/build.gradle.kts`), add
20
- the dependency for Cloud Firestore:
25
+ - Provision a Firestore instance (Standard edition)
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
31
+
32
+ ______________________________________________________________________
33
+
34
+ ## 2. Add dependencies to Gradle build files
35
+
36
+ > [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY** Never
37
+ > guess or hardcode a memorized out-of-date SDK or plugin version. Before adding
38
+ > dependencies, you MUST query the latest available versions directly from the
39
+ > Google Maven Repository:
40
+ >
41
+ > ```bash
42
+ > # Find the latest Firebase Android BoM version
43
+ > curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
44
+ >
45
+ > # Find the latest firebase-firestore version
46
+ > curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
47
+ > ```
48
+ >
49
+ > If the dependency is already declared, fetch the exact resolved version
50
+ > currently active in the workspace's build graph:
51
+ >
52
+ > ```bash
53
+ > ./gradlew -q :app:dependencyInsight --dependency firebase-firestore --configuration releaseRuntimeClasspath
54
+ > ```
55
+
56
+ In the **module (app-level)** `build.gradle.kts` (usually
57
+ `<project>/<app-module>/build.gradle.kts`), add the dependency for Cloud
58
+ Firestore:
21
59
 
22
60
  ```kotlin
23
61
  dependencies {
24
- // [AGENT] Fetch the latest available BoM version from https://firebase.google.com/support/release-notes/android before adding this
62
+ // [AGENT] Fetch the latest resolved version using the Gradle command above
25
63
  implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
26
64
 
27
65
  // Add the dependency for the Cloud Firestore library
28
- // When using the BoM, you don't specify versions in Firebase library dependencies
66
+ // When using the BoM, don't specify versions in Firebase library dependencies
29
67
  implementation("com.google.firebase:firebase-firestore")
30
68
  }
31
69
  ```
32
70
 
33
71
  ______________________________________________________________________
34
72
 
35
- ### 2. Initialize Firestore
73
+ ## 3. Initialize Firestore
36
74
 
37
- In your Activity or Fragment, initialize the `FirebaseFirestore` instance:
75
+ In the Activity or Fragment, initialize the `FirebaseFirestore` instance:
38
76
 
39
77
  ```kotlin
40
78
  import com.google.firebase.Firebase
@@ -58,7 +96,7 @@ class MainActivity : AppCompatActivity() {
58
96
  }
59
97
  ```
60
98
 
61
- #### Jetpack Compose (Modern)
99
+ ### Jetpack Compose (Modern)
62
100
 
63
101
  Initialize inside a `ComponentActivity` using `setContent`:
64
102
 
@@ -87,7 +125,11 @@ class MainActivity : ComponentActivity() {
87
125
 
88
126
  ______________________________________________________________________
89
127
 
90
- ### 3. Add Data
128
+ ## 4. Work with data
129
+
130
+ After Firestore is initialized, you can work with data in the following ways.
131
+
132
+ ### Add data
91
133
 
92
134
  Add a new document with a generated ID using `add()`:
93
135
 
@@ -125,9 +167,7 @@ db.collection("cities").document("LA")
125
167
  .addOnFailureListener { e -> Log.w(TAG, "Error writing document", e) }
126
168
  ```
127
169
 
128
- ______________________________________________________________________
129
-
130
- ### 4. Read Data
170
+ ### Read data
131
171
 
132
172
  Read a single document using `get()`:
133
173
 
@@ -162,9 +202,7 @@ db.collection("cities")
162
202
  }
163
203
  ```
164
204
 
165
- ______________________________________________________________________
166
-
167
- ### 5. Update Data
205
+ ### Update data
168
206
 
169
207
  Update some fields of a document using `update()` without overwriting the entire
170
208
  document:
@@ -179,9 +217,7 @@ washingtonRef
179
217
  .addOnFailureListener { e -> Log.w(TAG, "Error updating document", e) }
180
218
  ```
181
219
 
182
- ______________________________________________________________________
183
-
184
- ### 6. Delete Data
220
+ ### Delete data
185
221
 
186
222
  Delete a document using `delete()`:
187
223
 
@@ -51,7 +51,8 @@ specific index.
51
51
  - Index Required: **Composite Index**
52
52
  - **Multiple Ranges**: `where("a", ">", 1).where("b", ">", 2)`
53
53
  - Index Required: **Composite Index** (limited query support)
54
- - **Array Contains + Equality**: `where("tags", "array-contains", "news").where("active", "==", true)`
54
+ - **Array Contains + Equality**:
55
+ `where("tags", "array-contains", "news").where("active", "==", true)`
55
56
  - Index Required: **Composite Index**
56
57
 
57
58
  ## Best Practices & Exemptions
@@ -3,7 +3,9 @@ name: firebase-hosting-basics
3
3
  description: >-
4
4
  Deploys and configures classic Firebase Hosting for static websites, single-page apps (SPAs), and microservices. Use when deploying static sites/SPAs, setting up custom domains, configuring firebase.json hosting settings (redirects, rewrites, headers, multi-site), or managing preview channels. Don't use for Firebase App Hosting (Next.js/SSR), Auth, Firestore queries/rules, Data Connect, or Crashlytics.
5
5
  metadata:
6
+ author: Google LLC
6
7
  category: Serverless
8
+ disable-model-invocation: true
7
9
  ---
8
10
 
9
11
  # hosting-basics
@@ -4,7 +4,9 @@ description: >-
4
4
  Manages Firebase Remote Config templates, feature flags, loading strategies, and SDKs (Android, iOS). Use when downloading/deploying remoteconfig JSON templates, managing version history/feature flags, setting in-app defaults, fetchAndActivate(), real-time listeners, or SDK setup. Don't use for Firebase Hosting, Auth, Firestore, Data Connect, Crashlytics, or App Hosting.
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
+ author: Google LLC
7
8
  category: ApplicationDevelopment
9
+ disable-model-invocation: true
8
10
  ---
9
11
 
10
12
  # Remote Config
@@ -100,7 +102,7 @@ history through the terminal:
100
102
  ```
101
103
 
102
104
  - Deploy: Execute the partial deployment command
103
-
105
+
104
106
  ```bash
105
107
  npx -y firebase-tools@latest deploy --only remoteconfig
106
108
  ```