跳到正文
cccskills
免费在 GitHub 公开

firebase-auth-internal-app

Integrate Firebase Auth (authentication + domain restriction) into internal applications. Includes domain restriction via Blocking Functions and user registration to Firestore.

中文简介正在准备中。当前显示原文说明。

集成工具Firebase
查看安装方法

包含的文件(4)

  • SKILL.md3.7 KB
  • references/blocking_functions.md2.3 KB
  • references/custom_claims.md1.4 KB
  • references/security_rules.md2.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Integrate Firebase Authentication into an internal application. Implement the following components.

Prerequisites

  • A Firebase project has been created
  • Firebase CLI is installed and logged in
  • Firestore is enabled
  • The firebase-auth-basics skill is available

Implementation

1. Authentication Setup

Follow the firebase-auth-basics skill to:

  1. Use AskUserQuestion to ask the user which authentication method to use
  2. Provision the selected authentication method (firebase.json configuration or manual setup via Firebase Console)
  3. Implement client-side authentication (initialization, sign-in, auth state monitoring, sign-out)

Refer to firebase-auth-basics for all authentication method options, provisioning steps, and client SDK implementation examples.

For non-web platforms (iOS / Android / Flutter / Unity, etc.), fetch the relevant platform information from the official documentation at https://firebase.google.com/docs/auth.

2. Domain Restriction via Blocking Functions

Implement based on references/blocking_functions.md.

Using beforeUserCreated, implement the following:

  • Determine the domain from the user's email address
  • If the domain is allowed, register user information in the Firestore users collection
  • If the domain is not allowed, return an error to reject sign-in
  • Set the initial role in Custom Claims via the return value (return { customClaims: ... }), so it is included in the ID token from the first sign-in

Use AskUserQuestion to ask the user for the allowed email domain(s) (e.g., example.com). For multiple domains, ask for comma-separated input.

Also confirm the following:

  • Fields to store in the users collection (default: email, role, createdAt)

3. Permission Management via Custom Claims

Implement based on references/custom_claims.md.

Use onDocumentWritten to monitor changes to users/{id} documents and sync permission information to Custom Claims:

  • Initial claims are set by the beforeUserCreated return value (section 2); this trigger handles subsequent updates only
  • When the permission field in a users document is updated, reflect it in the ID token via setCustomUserClaims
  • On the client side, Custom Claims in the token can be used for permission control

Default role values:

  • admin: Administrator
  • user: Regular user
  • pending: Pending approval
  • deleted: Deleted

The initial role for users who pass domain restriction is user. Confirm the following with the user:

  • The permission field name to store in Custom Claims (default: role)
  • Whether to customize the role types (default: admin, user, pending, deleted)

4. Firestore Security Rules

Implement based on references/security_rules.md.

Define helper functions isUser() and isAdmin() based on the role Custom Claim, and set up security rules for the users collection as a minimum.

The application's other collections should also use isUser() and isAdmin() for access control.

Notes

  • If any prerequisites are not met, notify the user which ones are missing before proceeding
  • Always confirm environment-specific values such as allowed domains and app name with the user before setting them
  • Blocking Functions use Cloud Functions for Firebase (2nd gen)
  • Writing to the users collection uses the firebase-admin SDK (server-side)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

browser

免费

chrome-devtools-mcp の CLI (`chrome-devtools`) を使ったブラウザ操作の総合スキル。既存ブラウザへの attach / 使い捨てテストブラウザ / ログイン状態を保持する永続プロファイルのいずれかをユーザーに必ず確認した上でサーバを立ち上げ、スナップショット取得・クリック・入力・ナビゲーション・スクショ・ネットワーク監視などを行う。

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

capture

免费

checklist の「UI 撮影台本」に沿って UI のスクリーンショットを撮影し、前後比較(compare.html)用の before / after 素材を保存する。「実装前の UI を撮っておいて」「after のスクショを撮って」などの依頼で発火する。

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

Read and analyze log entries from Cloud Logging using the gcloud CLI.

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

Codex 公式プラグイン (codex-plugin-cc) のネイティブレビューでコードレビューを実施する。PR 番号指定時は PR を、無指定時は現在ブランチとベースブランチの差分をレビューする。

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

copy

免费

指定された内容をクリップボードにコピーするスキル。ファイルパスならその中身を、テキストならそのまま、会話中の直前の出力(コマンド結果・生成コード・URL など)を指す場合はその内容を pbcopy でコピーする。ユーザーが「コピーして」「クリップボードに入れて」などコピーの意図を示したら必ず使用する。

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

GitHub issue から PR のタイトルと説明文を作成する。

中文简介正在准备中。当前显示原文说明。

tanabee/skills32026年10月17日 更新

查看 tanabee 的全部技能

报告此技能的问题