firebase-data-connect
PostgreSQLを使ったFirebase Data Connect(SQL Connect)バックエンドの設計・構築・デプロイをセキュアに行います。テーブルやリレーションを含むスキーマ設計、認可付きクエリ・ミューテーションの記述、リアルタイムデータ更新の設定、タイプセーフなSDKの生成が必要な際に使用します。FirebaseでリレーショナルDBが必要な場合や、SQL Connect・Data Connectについて言及されたときに活用してください。
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.
SKILL.md 本文
Firebase SQL Connect
Firebase SQL Connect は、GraphQL スキーマ、自動生成されたクエリ/ミューテーション、タイプセーフな SDK を備えた Cloud SQL for PostgreSQL を使用するリレーショナルデータベースサービスです。
[!NOTE] 製品名の変更: Firebase Data Connect は Firebase SQL Connect にリネームされました。このスキルリポジトリ内の「Data Connect」または「Firebase Data Connect」を指すすべての説明、参照、および例は、「SQL Connect」および「Firebase SQL Connect」にも適用されます。
プロジェクト構造
dataconnect/
├── dataconnect.yaml # Service configuration
├── schema/
│ └── schema.gql # Data model (types with @table)
└── connector/
├── connector.yaml # Connector config + SDK generation
├── queries.gql # Queries
└── mutations.gql # Mutations
検証のための主要ツール
プロジェクトの正確性を確保するために、以下の 2 つのメカニズムに依存します:
- GraphQL スキーマのレビュー: ユーザー定義およ生成される拡張機能 (
.dataconnect/schema/main/内)。 - 操作の検証: スキーマに対して
npx -y firebase-tools@latest dataconnect:compileを実行します。
操作戦略: GraphQL vs. ネイティブ SQL
常に ネイティブ GraphQL をデフォルトとしてください。ネイティブ SQL にはタイプセーフティがなく、スキーマで強制される構造をバイパスします。ユーザーが明示的に ネイティブ SQL をリクエストした場合、またはタスクが高度なデータベース機能を必要とする場合のみ使用してください。
| 戦略 | 使用する場合 | 実装 |
|---|---|---|
| ネイティブ GraphQL (デフォルト) | ほぼすべてのユースケース。標準 CRUD、基本的なフィルタリング/ソート、シンプルなリレーショナルジョイン。完全なタイプセーフティが必要。 | 自動生成されたフィールド (movie_insert, movies)。強力な型付けとスキーマ強制。 |
| ネイティブ SQL (高度) | PostgreSQL 拡張機能 (例: PostGIS)、ウィンドウ関数 (RANK())、複雑な集約、高度に調整されたサブクエリ。 | _select, _execute などを介したネイティブ SQL 文字列リテラル。厳密な位置パラメータ ($1) が必要。タイプセーフティなし。 |
開発ワークフロー
アプリケーションをビルドするために、この厳密なワークフローに従ってください。各ステップの構文と利用可能な機能を理解するために、リンクされたリファレンスファイルを 必ず読む 必要があります。
1. データモデルを定義 (schema/schema.gql)
GraphQL タイプ、テーブル、および関連付け (Postgres スキーマにマップされる) を定義します。
reference/schema.mdを読んでください 以下について:
@table,@col,@default- 関連付け (
@ref, 一対多、多対多)- データ型 (UUID、Vector、JSON など)
2. 認可された操作を定義 (connector/queries.gql, connector/mutations.gql)
クライアントが使用するクエリとミューテーション (認可ロジックを含む) を記述します。SQL Connect はデフォルトで安全です。
reference/operations.mdを読んでください 以下について:
- クエリ: フィルタリング (
where)、ソート (orderBy)、ページネーション (limit/offset)。- ミューテーション: 作成 (
_insert)、更新 (_update)、削除 (_delete)。- アップサート:
_upsertを使用して「挿入または更新」を実行します (ユーザープロフィール用に重要)。- トランザクション: 複数ステップのアトミック操作に
@transactionを使用します。_expr: "response.<prevStep>"を使用してステップ間でデータを渡します。認可については
reference/security.mdを読んでください:
@auth(level: ...)(PUBLIC、USER、NO_ACCESS)。@checkと@redact(行レベルセキュリティと検証)。リアルタイムサブスクリプションについて
reference/realtime.mdを読んでください:
- 時間ベースのポーリングとイベント駆動型更新用の
@refreshディレクティブ。- 更新トリガーを正確にスコープするための CEL 条件。
ネイティブ SQL 操作について
reference/native_sql.mdを読んでください:
_select,_selectFirst,_executeでのネイティブ SQL の埋め込み- 位置パラメータ (
$1,$2)、クォート、CTE の厳密なルール- 高度な PostgreSQL 機能 (PostGIS、ウィンドウ関数)
3. アプリで型セーフな SDK を使用
クライアントプラットフォーム用の型セーフなコードを生成します。
connector.yaml で SDK 生成を設定します:
connectorId: my-connector
generate:
javascriptSdk:
outputDir: "../web-app/src/lib/dataconnect"
package: "@movie-app/dataconnect"
kotlinSdk:
outputDir: "../android-app/app/src/main/kotlin/com/example/dataconnect"
package: "com.example.dataconnect"
swiftSdk:
outputDir: "../ios-app/DataConnect"
SDK を生成します:
npx -y firebase-tools@latest dataconnect:sdk:generate
生成された SDK の使用方法に関するプラットフォーム固有の説明については、以下を読んでください:
- Web (TypeScript):
reference/sdk_web.md - Android (Kotlin):
reference/sdk_android.md - iOS (Swift):
reference/sdk_ios.md - Admin (Node.js):
reference/sdk_admin_node.md - Flutter (Dart):
reference/sdk_flutter.md
機能キャパビリティマップ
特定の機能を実装する必要がある場合は、マップされたリファレンスファイルを参照してください:
| 機能 | リファレンスファイル | 主要概念 |
|---|---|---|
| データモデリング | reference/schema.md | @table, @unique, @index, 関連付け |
| ベクトル検索 | reference/advanced.md | Vector, @col(dataType: "vector") |
| フルテキスト検索 | reference/advanced.md | @searchable |
| データのアップサート | reference/operations.md | _upsert ミューテーション |
| 複雑なフィルター | reference/operations.md | _or, _and, _not, eq, contains |
| トランザクション | reference/operations.md | @transaction, response バインディング |
| 環境設定 | reference/config.md | dataconnect.yaml, connector.yaml |
| リアルタイムサブスクリプション | reference/realtime.md | @refresh, subscribe(), 自動更新 |
| スターターテンプレート | templates.md | CRUD、ユーザー所有リソース、多対多、SDK 初期化 |
デプロイメント & CLI
reference/config.mdを読んでください 詳細な設定について。
現在のタスクに基づいて、以下のパターンに従います:
Firebase プロジェクトで SQL Connect を初期化する方法
- アプリのアイデアを理解します。不明な場合は明確化の質問をします。
npx -y firebase-tools@latest init dataconnectを実行します。- アプリテンプレートと生成された SDK が設定されていることを確認します。
SQL Connect を使用してローカルでアプリをビルドする方法
- エミュレータを起動します:
npx -y firebase-tools@latest emulators:start --only dataconnect。 - スキーマと操作を記述します。
npx -y firebase-tools@latest dataconnect:compileまたはnpx -y firebase-tools@latest dataconnect:sdk:generateを実行して 検証します。- アプリで操作を使用してビルドします。
SQL Connect を Cloud SQL にデプロイする方法
npx -y firebase-tools@latest deploy --only dataconnectを実行します。
例
スキーマと操作の完全で動作するコード例については、
examples.md を参照してください。
すぐに使用できるスターターテンプレート (CRUD、ユーザー所有リソース、多対多、YAML 設定、SDK 初期化) については、templates.md を参照してください。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- firebase
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/firebase/agent-skills / ライセンス: Apache-2.0
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。