vybekiit 0.7.29 → 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 +3403 -2768
- package/dist/global-guidance/language.md +7 -102
- package/dist/global-skills/add-ai/SKILL.md +7 -8
- package/dist/global-skills/add-analytics/SKILL.md +4 -7
- package/dist/global-skills/add-app-clip/SKILL.md +1 -0
- package/dist/global-skills/add-blog/SKILL.md +4 -7
- package/dist/global-skills/add-files/SKILL.md +4 -7
- package/dist/global-skills/add-images/SKILL.md +4 -7
- package/dist/global-skills/add-language/SKILL.md +5 -8
- package/dist/global-skills/add-notifications/SKILL.md +4 -7
- package/dist/global-skills/add-realtime/SKILL.md +4 -7
- package/dist/global-skills/add-search/SKILL.md +4 -7
- package/dist/global-skills/add-signin/SKILL.md +4 -8
- package/dist/global-skills/add-teams/SKILL.md +4 -7
- 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/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 +4 -7
- package/dist/global-skills/check-safety/SKILL.md +5 -8
- package/dist/global-skills/claimable-postgres/SKILL.md +1 -0
- package/dist/global-skills/configure-capabilities/SKILL.md +1 -1
- package/dist/global-skills/connect-account/SKILL.md +1 -1
- package/dist/global-skills/create-auth-skill/SKILL.md +1 -0
- package/dist/global-skills/doctor/SKILL.md +1 -1
- 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 +7 -7
- package/dist/global-skills/harden/SKILL.md +7 -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 +2 -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 +14 -13
- package/dist/global-skills/plan-my-idea/SKILL.md +1 -1
- package/dist/global-skills/publish-app/SKILL.md +1 -1
- package/dist/global-skills/publish-extension/SKILL.md +1 -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 +4 -6
- package/dist/global-skills/save-data/SKILL.md +3 -0
- 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 +7 -8
- package/dist/global-skills/setup-payments/SKILL.md +10 -12
- package/dist/global-skills/setup-sms/SKILL.md +1 -1
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +4 -6
- package/dist/global-skills/sign-in-with-google/SKILL.md +14 -13
- package/dist/global-skills/sign-in-with-phone/SKILL.md +5 -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 +12 -13
- package/dist/global-skills/update-kit/SKILL.md +1 -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/vercel-composition-patterns/SKILL.md +1 -0
- package/dist/global-skills/vercel-react-best-practices/SKILL.md +1 -0
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +229 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +11 -2
- package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/language.md +7 -102
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +239 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +11 -8
- package/dist/global-skills/vybekiitReferences/extension/language.md +7 -92
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +9 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +27 -12
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +279 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/language.md +7 -93
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +267 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +11 -8
- package/dist/global-skills/vybekiitReferences/spa/language.md +7 -11
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +15 -30
- package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +366 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +11 -2
- package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/language.md +7 -102
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +9 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +1 -3
- package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +1 -1
- package/dist/global-skills/web-to-native/SKILL.md +1 -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 +10 -8
|
@@ -1,40 +1,78 @@
|
|
|
1
|
-
# Cloud Firestore
|
|
1
|
+
# Cloud Firestore (Standard 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 (Standard edition) in an Android app using
|
|
5
|
+
Kotlin DSL (`build.gradle.kts`) and Kotlin code.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
## Prerequisites
|
|
7
8
|
|
|
8
|
-
Before
|
|
9
|
-
|
|
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.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
20
|
+
## 1. Provision Firestore
|
|
21
|
+
|
|
22
|
+
Follow the instructions in
|
|
23
|
+
`firebase_firestore/references/standard/provisioning` to do the following:
|
|
18
24
|
|
|
19
|
-
|
|
20
|
-
|
|
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**
|
|
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:
|
|
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
|
|
58
|
+
Cloud Firestore:
|
|
21
59
|
|
|
22
60
|
```kotlin
|
|
23
61
|
dependencies {
|
|
24
|
-
// [AGENT] Fetch the latest
|
|
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,
|
|
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
|
-
|
|
73
|
+
## 3. Initialize Firestore
|
|
36
74
|
|
|
37
|
-
In
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -4,6 +4,7 @@ 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
6
|
category: Serverless
|
|
7
|
+
disable-model-invocation: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# hosting-basics
|
|
@@ -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: ApplicationDevelopment
|
|
8
|
+
disable-model-invocation: true
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Remote Config
|
|
@@ -1,108 +1,100 @@
|
|
|
1
|
-
# Firebase Remote Config 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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
# Firebase Remote Config - Android Setup Guide (Kotlin)
|
|
2
|
+
|
|
3
|
+
This guide describes the SDK setup and basic usage patterns for
|
|
4
|
+
Firebase Remote Config 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 Remote Config, 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
|
+
## 1. Add dependencies to Gradle build files
|
|
19
|
+
|
|
20
|
+
> [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY**
|
|
21
|
+
> Never guess or hardcode a memorized out-of-date SDK or plugin version.
|
|
22
|
+
> Before adding dependencies, you MUST query the latest available versions
|
|
23
|
+
> directly from the Google Maven Repository:
|
|
24
|
+
>
|
|
25
|
+
> ```bash
|
|
26
|
+
> # Find the latest Firebase Android BoM version
|
|
27
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
28
|
+
>
|
|
29
|
+
> # Find the latest firebase-config version
|
|
30
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-config/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
31
|
+
> ```
|
|
32
|
+
>
|
|
33
|
+
> If the dependency is already declared, fetch the exact resolved version
|
|
34
|
+
> currently active in the workspace's build graph:
|
|
35
|
+
>
|
|
36
|
+
> ```bash
|
|
37
|
+
> ./gradlew -q :app:dependencyInsight --dependency firebase-config --configuration releaseRuntimeClasspath
|
|
38
|
+
> ```
|
|
39
|
+
|
|
40
|
+
These changes are made to the Android project's Gradle files.
|
|
41
|
+
|
|
42
|
+
Google Analytics for Firebase is highly recommended as it enables conditional
|
|
43
|
+
targeting based on user properties and audiences. Additional manual setup for
|
|
44
|
+
Google Analytics is required (see "Before you begin" in
|
|
45
|
+
https://firebase.google.com/docs/analytics/android/get-started.md.txt)
|
|
46
|
+
|
|
47
|
+
In the **module (app-level)** `build.gradle.kts` (usually
|
|
48
|
+
`<project>/<app-module>/build.gradle.kts`), add the dependencies for
|
|
49
|
+
Firebase Remote Config and Google Analytics:
|
|
33
50
|
|
|
34
51
|
```kotlin
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
|
|
52
|
+
dependencies {
|
|
53
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
54
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
55
|
+
|
|
56
|
+
// Add the dependencies for the Firebase Remote Config and Analytics libraries
|
|
57
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
58
|
+
implementation("com.google.firebase:firebase-config")
|
|
59
|
+
implementation("com.google.firebase:firebase-analytics")
|
|
38
60
|
}
|
|
39
61
|
```
|
|
40
62
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
1. Add the Google Services plugin to the `plugins` block:
|
|
44
|
-
|
|
45
|
-
```kotlin
|
|
46
|
-
plugins {
|
|
47
|
-
// ... other plugins
|
|
48
|
-
id("com.google.gms.google-services")
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
1. Add the Firebase Remote Config and Analytics dependencies. Using the Firebase
|
|
53
|
-
Bill of Materials (BoM) is the best practice for version management.
|
|
54
|
-
|
|
55
|
-
```kotlin
|
|
56
|
-
dependencies {
|
|
57
|
-
// ... other dependencies
|
|
58
|
-
|
|
59
|
-
// Import the Firebase BoM
|
|
60
|
-
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
61
|
-
|
|
62
|
-
// Add the dependencies for Remote Config and Analytics
|
|
63
|
-
implementation("com.google.firebase:firebase-config")
|
|
64
|
-
implementation("com.google.firebase:firebase-analytics")
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Follow up Steps
|
|
69
|
-
|
|
70
|
-
The following steps cover the essential patterns for using Remote Config
|
|
71
|
-
effectively.
|
|
72
|
-
|
|
73
|
-
### Set In-App Defaults
|
|
74
|
-
|
|
75
|
-
Define default values so your app has functional logic before it ever fetches a
|
|
76
|
-
template from the server. Create an XML file (e.g.,
|
|
77
|
-
`res/xml/remote_config_defaults.xml`):
|
|
78
|
-
```xml
|
|
79
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
80
|
-
<!-- Example Remote Config Defaults File -->
|
|
81
|
-
<defaultsMap>
|
|
82
|
-
<entry>
|
|
83
|
-
<key>welcome_message</key>
|
|
84
|
-
<value>Welcome to the app!</value>
|
|
85
|
-
</entry>
|
|
86
|
-
<entry>
|
|
87
|
-
<key>is_feature_enabled</key>
|
|
88
|
-
<value>false</value>
|
|
89
|
-
</entry>
|
|
90
|
-
</defaultsMap>
|
|
91
|
-
```
|
|
63
|
+
______________________________________________________________________
|
|
92
64
|
|
|
93
|
-
|
|
65
|
+
## 2. Set in-app defaults
|
|
94
66
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
67
|
+
1. Define default values so the app has functional logic before it ever fetches
|
|
68
|
+
a template from the server. Create an XML file (e.g.,
|
|
69
|
+
`res/xml/remote_config_defaults.xml`):
|
|
98
70
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
71
|
+
```xml
|
|
72
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
73
|
+
<!-- Example Remote Config Defaults File -->
|
|
74
|
+
<defaultsMap>
|
|
75
|
+
<entry>
|
|
76
|
+
<key>welcome_message</key>
|
|
77
|
+
<value>Welcome to the app!</value>
|
|
78
|
+
</entry>
|
|
79
|
+
<entry>
|
|
80
|
+
<key>is_feature_enabled</key>
|
|
81
|
+
<value>false</value>
|
|
82
|
+
</entry>
|
|
83
|
+
</defaultsMap>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
2. Initialize the SDK in the Activity or Application class:
|
|
87
|
+
|
|
88
|
+
```kotlin
|
|
89
|
+
val remoteConfig = Firebase.remoteConfig
|
|
90
|
+
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
______________________________________________________________________
|
|
102
94
|
|
|
103
|
-
|
|
95
|
+
## 3. Fetch and activate values
|
|
104
96
|
|
|
105
|
-
To apply values from the cloud,
|
|
97
|
+
To apply values from the cloud, fetch them and then activate them in the app:
|
|
106
98
|
|
|
107
99
|
```kotlin
|
|
108
100
|
remoteConfig.fetchAndActivate()
|
|
@@ -4,6 +4,7 @@ description: >-
|
|
|
4
4
|
Audits Firebase (Firestore, Cloud Storage) security rules for vulnerabilities, privilege escalation, role bypasses, create vs update inconsistencies, resource exhaustion, type safety, size limits, and hasOnly ownership checks. Use when auditing/reviewing rules, running red-team rule assessments, or scoring against auditor checklists. Don't use for Firebase CLI (login, deploy), Auth, Crashlytics, Remote Config, or database queries.
|
|
5
5
|
metadata:
|
|
6
6
|
category: CloudSecurity
|
|
7
|
+
disable-model-invocation: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Overview
|
|
@@ -4,6 +4,7 @@ description: >-
|
|
|
4
4
|
Designs, authors, refactors, and hardens production-grade Cloud Firestore Security Rules (firestore.rules). IMPORTANT: If subagent delegation AND the firestore-rules-author subagent are available in your environment, delegate authoring firestore.rules to the firestore-rules-author subagent. If subagent delegation is unavailable (e.g. not enabled in the IDE), firestore-rules-author is not installed, or you are running inside firestore-rules-author, follow this skill directly.
|
|
5
5
|
metadata:
|
|
6
6
|
category: Databases
|
|
7
|
+
disable-model-invocation: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Firestore Security Rules Creation
|
|
@@ -30,13 +30,10 @@ asked.
|
|
|
30
30
|
## Steps
|
|
31
31
|
|
|
32
32
|
<!-- vybekiit:page-recipe-install -->
|
|
33
|
-
0. **
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Also reference `packages/agentKit` `getPageRecipeInstall('go-live')` / page-recipe-manifest.json.
|
|
38
|
-
**Verify:** route builds and shows practice UI before provider wiring.
|
|
39
|
-
|
|
33
|
+
0. **Add the ready-made page first.** Run `vybekiit add page-recipe launch-checklist`. It adds the page
|
|
34
|
+
at `/launch` and lists any data setup to run next. Keep every `TODO:` in the page and fill
|
|
35
|
+
each one in as you connect the real service.
|
|
36
|
+
**Verify:** `/launch` opens and shows practice content.
|
|
40
37
|
|
|
41
38
|
1. **Pre-flight check.** Run `vybekiit doctor` to make sure the deploy tool is installed, then run
|
|
42
39
|
the project's checks (tests + build) yourself. Asset optimization runs in `prebuild` / start hooks
|
|
@@ -56,6 +53,9 @@ asked.
|
|
|
56
53
|
have the builder run the one sign-in command it printed — a browser window opens, they click
|
|
57
54
|
"approve," and that's the only thing they do (this works the same whichever host their setup
|
|
58
55
|
uses). Then you create the project and connect the app.
|
|
56
|
+
Going online with Cloudflare and need its access key? Run `vybekiit-automate cf setup --json`.
|
|
57
|
+
The builder signs in to Cloudflare once in the browser it opens; it then creates the key and saves
|
|
58
|
+
`CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` to `.env`, printing only their names.
|
|
59
59
|
**Verify:** the deploy tool reports they're signed in, and the project shows up.
|
|
60
60
|
|
|
61
61
|
4. **Move the secret settings over.** Copy the needed secret settings into the app's home for them
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: harden
|
|
3
|
-
description: "the builder's app is protected against the common attacks every app faces — someone. Use when the vibe coder says something like: lock down; make it safe; protect from abuse."
|
|
3
|
+
description: "the builder's app is protected against the common attacks every app faces — someone hammering the login to guess passwords, bots flooding requests, and other sites secretly making requests on a visitor's behalf. Use when the vibe coder says something like: lock down; make it safe; protect from abuse."
|
|
4
4
|
metadata:
|
|
5
5
|
vybekiit-generated: buyer-skill-stub
|
|
6
6
|
---
|
|
@@ -29,7 +29,7 @@ translate every error · celebrate. You do all the work; the builder just approv
|
|
|
29
29
|
> app is safe," not "your app is exposed."
|
|
30
30
|
>
|
|
31
31
|
> (Under the hood — agent-only) Protection is `@vybekiit/security`, driven entirely by the `SECURITY_*`
|
|
32
|
-
> keys in
|
|
32
|
+
> keys in `settings.env` (the single source of truth — see core `securityConfigSchema`). The web app enforces
|
|
33
33
|
> it in `middleware.ts` (already wired, on by default: same-origin lock + per-IP rate limit on
|
|
34
34
|
> `/api/*`). The same toggles drive the Cloudflare edge config in `infra/cloudflare/` at go-live. Never
|
|
35
35
|
> name "rate limit", "CORS", or "origin" to the builder unless they ask — say "request limits" and
|
|
@@ -38,19 +38,16 @@ translate every error · celebrate. You do all the work; the builder just approv
|
|
|
38
38
|
## Steps
|
|
39
39
|
|
|
40
40
|
<!-- vybekiit:page-recipe-install -->
|
|
41
|
-
0. **
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Also reference `packages/agentKit` `getPageRecipeInstall('harden')` / page-recipe-manifest.json.
|
|
46
|
-
**Verify:** route builds and shows practice UI before provider wiring.
|
|
47
|
-
|
|
41
|
+
0. **Add the ready-made page first.** Run `vybekiit add page-recipe audit-log`. It adds the page
|
|
42
|
+
at `/admin/audit-log` and lists any data setup to run next. Keep every `TODO:` in the page and fill
|
|
43
|
+
each one in as you connect the real service.
|
|
44
|
+
**Verify:** `/admin/audit-log` opens and shows practice content.
|
|
48
45
|
|
|
49
46
|
1. **Explain in one line.** *"I'm going to make sure your app is safe from abuse — limiting how fast
|
|
50
47
|
anyone can hammer it and blocking requests pretending to come from other sites. It's already on; I'll
|
|
51
48
|
tune it to your app."*
|
|
52
49
|
|
|
53
|
-
2. **Confirm it's on.** Check
|
|
50
|
+
2. **Confirm it's on.** Check `settings.env` has `SECURITY_RATE_LIMIT="on"` and `SECURITY_ORIGIN_LOCK="on"`
|
|
54
51
|
(these are the defaults; if a previous step turned one off, turn it back on unless the builder asked
|
|
55
52
|
otherwise). Confirm `middleware.ts` is present.
|
|
56
53
|
**Verify:** both switches are `on` and the app still builds.
|
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
"mongodb-connection",
|
|
99
99
|
"mongodb-mcp-setup",
|
|
100
100
|
"mongodb-natural-language-querying",
|
|
101
|
+
"mongodb-qe-size-estimation",
|
|
101
102
|
"mongodb-query-optimizer",
|
|
102
103
|
"mongodb-schema-design",
|
|
103
104
|
"mongodb-search-and-ai",
|
|
@@ -151,5 +152,5 @@
|
|
|
151
152
|
"resources": [
|
|
152
153
|
"vybekiitReferences"
|
|
153
154
|
],
|
|
154
|
-
"count":
|
|
155
|
+
"count": 148
|
|
155
156
|
}
|