コンテンツにスキップ

Firebaseコネクタ

Firebaseコネクタは、モバイル、ウェブ、サーバー開発向けの柔軟でスケーラブルなNoSQLクラウドデータベースであるGoogle Cloud Firestoreへのデータ書き込みを可能にします。

コネクタタイプ:

  • FirebaseWriter - Firestoreコレクションにドキュメントを書き込む

Firestoreコレクションにデータを書き込み:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "base64",
"data": "<base64-encoded-service-account-json>"
},
"projectId": "my-firebase-project",
"collection": "sensor_readings"
}
}

特定のFirestoreデータベースに接続(マルチデータベースプロジェクト用):

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/path/to/service-account.json"
},
"projectId": "my-firebase-project",
"databaseName": "production-db",
"collection": "iot_events"
}
}
パラメータ必須説明
credentialsFileEncodedFileサービスアカウント認証情報ファイル
projectIdstringFirebase/GCPプロジェクトID
collectionstringFirestoreコレクション名
databaseNamestringFirestoreデータベース名(マルチデータベースプロジェクト用)

credentialsFileパラメータは2つのモードをサポート:

{
"credentialsFile": {
"mode": "base64",
"data": "eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii..."
}
}
{
"credentialsFile": {
"mode": "path",
"data": "/etc/meddle/firebase-credentials.json"
}
}

サービスアカウントのセットアップ

Section titled “サービスアカウントのセットアップ”
  1. Firebaseコンソールにアクセス
  2. プロジェクトを選択 → プロジェクト設定 → サービスアカウント
  3. 「新しい秘密鍵を生成」をクリック
  4. JSONファイルをダウンロード
  5. ファイルパスを使用するか、内容をbase64エンコード

各データペイロードは指定されたコレクションに新しいドキュメントとして追加されます:

{
"temperature": 25.5,
"pressure": 101.3,
"humidity": 60,
"timestamp": 1234567890
}

Firestoreは各エントリに対して一意のドキュメントIDを自動生成します。

センサー読み取り値をFirestoreに保存:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/config/firebase-sa.json"
},
"projectId": "iot-monitoring",
"collection": "sensor_data"
}
}

システムイベントを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"
}
}

解決策:

  • 認証情報ファイルが有効なJSONであることを確認
  • プロジェクトIDがFirebaseプロジェクトと一致することを確認
  • サービスアカウントにFirestore権限があることを確認
  • base64モードを使用している場合はbase64エンコーディングを確認

解決策:

  • コレクション名が有効であることを確認
  • Firestoreセキュリティルールが書き込みを許可していることを確認
  • サービスアカウントにdatastore.userロールがあることを確認
  • Firestoreのクォータと制限を確認

解決策:

  • Google Cloudへのネットワーク接続を確認
  • ファイアウォールがアウトバウンドHTTPS(ポート443)を許可していることを確認
  • 認証情報が期限切れまたは取り消されていないことを確認
  1. サービスアカウントを使用: 本番環境ではユーザー認証情報を使用しない
  2. 権限を制限: 必要なFirestore権限のみを付与
  3. コレクションを整理: 明確な階層を持つ意味のあるコレクション名を使用
  4. 使用量を監視: コスト管理のためにFirestoreの読み取り/書き込み操作を追跡
  5. 認証情報を保護: 認証情報を安全に保存し、バージョン管理にコミットしない
  • MongoDB - 代替NoSQLデータベース
  • SQL - リレーショナルデータベースストレージ
  • InfluxDB - 時系列データベース