Firebaseコネクタ
Firebaseコネクタは、モバイル、ウェブ、サーバー開発向けの柔軟でスケーラブルなNoSQLクラウドデータベースであるGoogle Cloud Firestoreへのデータ書き込みを可能にします。
コネクタタイプ:
FirebaseWriter- Firestoreコレクションにドキュメントを書き込む
Firebase Writer
Section titled “Firebase Writer”Firestoreコレクションにデータを書き込み:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "base64", "data": "<base64-encoded-service-account-json>" }, "projectId": "my-firebase-project", "collection": "sensor_readings" }}カスタムデータベース付き
Section titled “カスタムデータベース付き”特定のFirestoreデータベースに接続(マルチデータベースプロジェクト用):
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/path/to/service-account.json" }, "projectId": "my-firebase-project", "databaseName": "production-db", "collection": "iot_events" }}設定パラメータ
Section titled “設定パラメータ”| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
credentialsFile | EncodedFile | ✅ | サービスアカウント認証情報ファイル |
projectId | string | ✅ | Firebase/GCPプロジェクトID |
collection | string | ✅ | Firestoreコレクション名 |
databaseName | string | ❌ | Firestoreデータベース名(マルチデータベースプロジェクト用) |
認証情報ファイル形式
Section titled “認証情報ファイル形式”credentialsFileパラメータは2つのモードをサポート:
Base64エンコード
Section titled “Base64エンコード”{ "credentialsFile": { "mode": "base64", "data": "eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii..." }}ファイルパス
Section titled “ファイルパス”{ "credentialsFile": { "mode": "path", "data": "/etc/meddle/firebase-credentials.json" }}サービスアカウントのセットアップ
Section titled “サービスアカウントのセットアップ”- Firebaseコンソールにアクセス
- プロジェクトを選択 → プロジェクト設定 → サービスアカウント
- 「新しい秘密鍵を生成」をクリック
- JSONファイルをダウンロード
- ファイルパスを使用するか、内容をbase64エンコード
各データペイロードは指定されたコレクションに新しいドキュメントとして追加されます:
{ "temperature": 25.5, "pressure": 101.3, "humidity": 60, "timestamp": 1234567890}Firestoreは各エントリに対して一意のドキュメントIDを自動生成します。
一般的なユースケース
Section titled “一般的なユースケース”1. IoTセンサーデータ
Section titled “1. IoTセンサーデータ”センサー読み取り値をFirestoreに保存:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/config/firebase-sa.json" }, "projectId": "iot-monitoring", "collection": "sensor_data" }}2. イベントログ
Section titled “2. イベントログ”システムイベントをFirestoreに記録:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "base64", "data": "<credentials>" }, "projectId": "event-tracker", "collection": "system_events" }}3. マルチデータベースアーキテクチャ
Section titled “3. マルチデータベースアーキテクチャ”マルチデータベースプロジェクトの特定のデータベースに書き込み:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/config/firebase-sa.json" }, "projectId": "enterprise-app", "databaseName": "analytics-db", "collection": "metrics" }}トラブルシューティング
Section titled “トラブルシューティング”解決策:
- 認証情報ファイルが有効なJSONであることを確認
- プロジェクトIDがFirebaseプロジェクトと一致することを確認
- サービスアカウントにFirestore権限があることを確認
- base64モードを使用している場合はbase64エンコーディングを確認
書き込み失敗
Section titled “書き込み失敗”解決策:
- コレクション名が有効であることを確認
- Firestoreセキュリティルールが書き込みを許可していることを確認
- サービスアカウントに
datastore.userロールがあることを確認 - Firestoreのクォータと制限を確認
クライアント接続エラー
Section titled “クライアント接続エラー”解決策:
- Google Cloudへのネットワーク接続を確認
- ファイアウォールがアウトバウンドHTTPS(ポート443)を許可していることを確認
- 認証情報が期限切れまたは取り消されていないことを確認
ベストプラクティス
Section titled “ベストプラクティス”- サービスアカウントを使用: 本番環境ではユーザー認証情報を使用しない
- 権限を制限: 必要なFirestore権限のみを付与
- コレクションを整理: 明確な階層を持つ意味のあるコレクション名を使用
- 使用量を監視: コスト管理のためにFirestoreの読み取り/書き込み操作を追跡
- 認証情報を保護: 認証情報を安全に保存し、バージョン管理にコミットしない