托管OAuth集成Firebase Management API,管理Firebase项目、Web、Android和iOS应用。用户需要列(list)时使用此技能。
Firebase是一项面向实际任务的技能,主要用于使用管理好的 OAuth 认证访问 Firebase 管理API..是一项围绕特定任务主题设计的实用技能。它会根据用户给出的目标、输入材料和运行环境,组织必要的处理步骤,调用适合的工具或接口,并把执行结果整理成便于检查和继续使用的形式。
涉及外部服务、账号权限和敏感数据时。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过托管的 OAuth 认证访问 Firebase Management API。支持对 Firebase 项目及应用(Web、Android、iOS)执行完整的 CRUD 操作。
# 列出 Firebase 项目
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/firebase/v1beta1/projects')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
https://api.maton.ai/firebase/{native-api-path}
Maton 将请求代理至 firebase.googleapis.com,并自动注入您的 OAuth Token。
所有请求均需在 Authorization 请求头中提供 Maton API 密钥:
Authorization: Bearer $MATON_API_KEY
环境变量:将您的 API 密钥设为 MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
在 https://api.maton.ai 管理您的 Firebase OAuth 连接。
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections?app=firebase&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'firebase'}).encode()
req = urllib.request.Request('https://api.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
响应:
{
"connection": {
"connection_id": "{connection_id}",
"status": "ACTIVE",
"creation_time": "2025-12-08T07:20:53.488460Z",
"last_updated_time": "2026-01-31T20:03:32.593153Z",
"url": "https://connect.maton.ai/?session_token=...",
"app": "firebase",
"metadata": {}
}
}
在浏览器中打开返回的 url 以完成 OAuth 授权。
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
若您拥有多个 Firebase 连接,请使用 Maton-Connection 请求头指定要使用的连接:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/firebase/v1beta1/projects')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '{connection_id}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
若您拥有多个连接,务必始终包含该请求头,以确保请求路由至目标账户。
列出经身份验证用户可访问的所有 Firebase 项目。
GET /firebase/v1beta1/projects
响应:
{
"results": [
{
"projectId": "my-firebase-project",
"projectNumber": "123456789",
"displayName": "My Firebase Project",
"name": "projects/my-firebase-project",
"resources": {
"hostingSite": "my-firebase-project"
},
"state": "ACTIVE",
"etag": "1_bc06d94f-cf77-4689-be01-576702b23f6a"
}
]
}
GET /firebase/v1beta1/projects/{projectId}
PATCH /firebase/v1beta1/projects/{projectId}?updateMask=displayName
Content-Type: application/json
{
"displayName": "Updated Project Name"
}
列出可添加 Firebase 的 Google Cloud 项目。
GET /firebase/v1beta1/availableProjects
为现有 Google Cloud 项目启用 Firebase 服务。
POST /firebase/v1beta1/projects/{projectId}:addFirebase
Content-Type: application/json
{}
该操作返回一个长期运行的操作(long-running operation)。可通过以下方式检查操作状态:
GET /firebase/v1beta1/operations/{operationId}
GET /firebase/v1beta1/projects/{projectId}/adminSdkConfig
GET /firebase/v1beta1/projects/{projectId}/webApps
GET /firebase/v1beta1/projects/{projectId}/webApps/{appId}
POST /firebase/v1beta1/projects/{projectId}/webApps
Content-Type: application/json
{
"displayName": "My Web App"
}
PATCH /firebase/v1beta1/projects/{projectId}/webApps/{appId}?updateMask=displayName
Content-Type: application/json
{
"displayName": "Updated Web App Name"
}
GET /firebase/v1beta1/projects/{projectId}/webApps/{appId}/config
响应:
{
"projectId": "my-firebase-project",
"appId": "1:123456789:web:abc123",
"apiKey": "AIzaSy...",
"authDomain": "my-firebase-project.firebaseapp.com",
"storageBucket": "my-firebase-project.firebasestorage.app",
"messagingSenderId": "123456789",
"measurementId": "G-XXXXXXXXXX",
"projectNumber": "123456789"
}
POST /firebase/v1beta1/projects/{projectId}/webApps/{appId}:remove
Content-Type: application/json
{
"immediate": true
}
POST /firebase/v1beta1/projects/{projectId}/webApps/{appId}:undelete
Content-Type: application/json
{}
GET /firebase/v1beta1/projects/{projectId}/androidApps
GET /firebase/v1beta1/projects/{projectId}/androidApps/{appId}
POST /firebase/v1beta1/projects/{projectId}/androidApps
Content-Type: application/json
{
"displayName": "My Android App",
"packageName": "com.example.myapp"
}
PATCH /firebase/v1beta1/projects/{projectId}/androidApps/{appId}?updateMask=displayName
Content-Type: application/json
{
"displayName": "Updated Android App Name"
}
返回 google-services.json 配置文件。
GET /firebase/v1beta1/projects/{projectId}/androidApps/{appId}/config
POST /firebase/v1beta1/projects/{projectId}/androidApps/{appId}:remove
Content-Type: application/json
{
"immediate": true
}
GET /firebase/v1beta1/projects/{projectId}/androidApps/{appId}/sha
POST /firebase/v1beta1/projects/{projectId}/androidApps/{appId}/sha
Content-Type: application/json
{
"shaHash": "1234567890ABCDEF1234567890ABCDEF12345678",
"certType": "SHA_1"
}
DELETE /firebase/v1beta1/projects/{projectId}/androidApps/{appId}/sha/{shaId}
GET /firebase/v1beta1/projects/{projectId}/iosApps
GET /firebase/v1beta1/projects/{projectId}/iosApps/{appId}
POST /firebase/v1beta1/projects/{projectId}/iosApps
Content-Type: application/json
{
"displayName": "My iOS App",
"bundleId": "com.example.myapp"
}
PATCH /firebase/v1beta1/projects/{projectId}/iosApps/{appId}?updateMask=displayName
Content-Type: application/json
{
"displayName": "Updated iOS App Name"
}
返回 GoogleService-Info.plist 配置文件。
GET /firebase/v1beta1/projects/{projectId}/iosApps/{appId}/config
POST /firebase/v1beta1/projects/{projectId}/iosApps/{appId}:remove
Content-Type: application/json
{
"immediate": true
}
GET /firebase/v1beta1/projects/{projectId}/analyticsDetails
POST /firebase/v1beta1/projects/{projectId}:addGoogleAnalytics
Content-Type: application/json
{
"analyticsAccountId": "123456789"
}
POST /firebase/v1beta1/projects/{projectId}:removeAnalytics
Content-Type: application/json
{
"analyticsPropertyId": "properties/123456789"
}
GET /firebase/v1beta1/projects/{projectId}/availableLocations
使用 pageSize 和 pageToken 实现分页:
GET /firebase/v1beta1/projects?pageSize=10&pageToken={nextPageToken}
当存在更多结果时,响应中将包含 nextPageToken:
{
"results": [...],
"nextPageToken": "..."
}
const response = await fetch(
'https://api.maton.ai/firebase/v1beta1/projects',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
const data = await response.json();
import os
import requests
response = requests.get(
'https://api.maton.ai/firebase/v1beta1/projects',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
)
data = response.json()
import os
import requests
response = requests.post(
'https://api.maton.ai/firebase/v1beta1/projects/my-project/webApps',
headers={
'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
'Content-Type': 'application/json'
},
json={'displayName': 'My New Web App'}
)
data = response.json()
1:PROJECT_NUMBER:PLATFORM:HASHupdateMask 查询参数,用于指定待更新字段(例如:?updateMask=displayName)/firebase/v1beta1/operations/{operationId} 查询操作状态curl -g 禁用 glob 解析jq 或其他命令时,在部分 Shell 环境中环境变量(如 $MATON_API_KEY)可能无法正确展开| 状态码 | 含义 |
|---|---|
| 400 | 缺少 Firebase 连接 |
| 401 | Maton API 密钥无效或缺失 |
| 403 | 当前操作权限不足 |
| 404 | 项目或应用未找到 |
| 429 | 请求频率超限 |
| 4xx/5xx | 来自 Firebase API 的透传错误 |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章