Skip to main content

Firebase

ShanoneのFirebase連携は、Firestore・認証・Cloud Messaging・Remote Config・Cloud Storage・プロジェクト/アプリ管理まで、Firebase Adminの機能全体をカバーする45個のツールをエージェントに提供します。

はじめに

1

サービスアカウントキーを作成する

Firebaseコンソールで、プロジェクトの設定 → サービスアカウントに移動し、新しい秘密鍵(JSON)を生成します。
2

Shanoneにキーを追加する

Shanoneダッシュボードの連携を開き、Firebaseを選択して、サービスアカウントのJSON全体を貼り付けます。
3

リクエストを再実行する

保存が完了すると、firebase_*ツールに対するshanone_execute_tool呼び出しが成功するようになります。

利用可能なツール

ShanoneはFirebase向けに45個のツールを、以下のカテゴリに整理して提供しています。
firebase_list_projects, firebase_get_project, firebase_list_web_apps, firebase_list_android_apps, firebase_list_ios_apps, firebase_create_android_app, firebase_create_ios_app
firebase_list_firestore_collections, firebase_list_firestore_documents, firebase_get_firestore_document, firebase_create_firestore_document, firebase_update_firestore_document, firebase_delete_firestore_document, firebase_query_firestore
firebase_messaging_send, firebase_messaging_send_each, firebase_messaging_send_each_for_multicast, firebase_messaging_subscribe_to_topic, firebase_messaging_unsubscribe_from_topic
firebase_remote_config_get_template, firebase_remote_config_publish_template, firebase_remote_config_list_versions, firebase_remote_config_rollback, firebase_remote_config_download_defaults
firebase_storage_list_files, firebase_storage_get_file_metadata, firebase_storage_upload_file, firebase_storage_download_file, firebase_storage_delete_file, firebase_storage_generate_signed_url
firebase_list_hosting_sites, firebase_list_hosting_releases, firebase_app_check_verify_token

よくあるユースケース

ユーザーアカウント管理

Firebase Authのユーザーを一覧・作成・更新し、ロールベースアクセス用のカスタムクレームを管理する

プッシュ通知キャンペーン

Cloud Messagingでターゲット指定/トピック指定のプッシュ通知を送信する

Firestoreデータ操作

コンソールを開かずにFirestoreのドキュメント/コレクションを検索・取得・更新する

設定のロールアウト & ロールバック

新しいRemote Configテンプレートを公開し、指標が悪化したら即座にロールバックする

トラブルシューティング

Firestoreの複合フィルタ/ソートを含むクエリにはインデックスが必要です。クエリのロジックが間違っていると考える前に、Firebaseコンソールでインデックス不足のエラーが出ていないか確認してください。
バッチでのユーザー削除は、レスポンス内にUIDごとのエラーを報告します。200系のステータスがすべてのUIDが削除されたことを意味すると仮定せず、返されたエラーリストを確認してください。
サービスアカウントのJSONは1つのFirebaseプロジェクトに紐づいています。firebase_get_projectが期待するプロジェクトを返すか確認してください。間違ったプロジェクトのキーだと、以降のすべての呼び出しが失敗します。