Firebase Management REST API راهاندازی و مدیریت پروژههای Firebase از جمله منابع Firebase پروژه و برنامههای Firebase را امکانپذیر میکند.
این نمای کلی، گردش کار کلی برای افزودن منابع و برنامههای Firebase به پروژه Google Cloud موجود را که هنوز از خدمات Firebase استفاده نمیکند، توضیح میدهد.
اگر فقط می خواهید، می توانید به بخش های خاصی از این صفحه بروید:
- خدمات Firebase را به پروژه خود اضافه کنید
- برنامه های Firebase را به پروژه Firebase خود اضافه کنید
- پروژه Firebase خود را به یک حساب Google Analytics پیوند دهید
قبل از انجام هر مرحله در این صفحه، مطمئن شوید که API را فعال کرده اید.
برای کسب اطلاعات در مورد مدیریت دسترسی برای Firebase Management API، از مستندات API مدیریت دسترسی هویت Cloud (IAM) دیدن کنید.
قبل از شروع
قبل از شروع، باید مدیریت API را برای پروژه Google Cloud خود فعال کنید و رمز دسترسی خود را ایجاد کنید .
مدیریت REST API را برای پروژه Google Cloud خود فعال کنید
اگر قبلاً این کار را نکردهاید، باید API مدیریت Firebase را برای استفاده با پروژه Google Cloud خود فعال کنید.
- صفحه Firebase Management API را در کنسول Google APIs باز کنید.
- وقتی از شما خواسته شد، پروژه Google Cloud خود را انتخاب کنید.
- در صفحه Firebase Management API روی Enable کلیک کنید.
کد دسترسی API خود را ایجاد کنید
در اینجا یک مثال برای Node.js آورده شده است که رمز دسترسی شما را بازیابی می کند.
ابتدا، اگر در محیط Google Cloud نیستید، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
را روی مسیر کلید حساب سرویس خود تنظیم کنید.
لینوکس یا macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
ویندوز
با PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
سپس، از Firebase Admin SDK برای دریافت رمز دسترسی از اعتبار حساب سرویس خود استفاده کنید:
const admin = require('firebase-admin');
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
نام منبع پروژه خود را پیدا کنید
میتوانید پروژههای Google Cloud را که برای افزودن سرویسهای Firebase در دسترس هستند، بیابید.
درخواست
با availableProjects.list
تماس بگیرید. بدنه درخواست برای این تماس باید خالی باشد.
در اینجا یک مثال برای Node.js برای درخواست لیستی از پروژه های Google Cloud موجود است:
const fetch = require('node-fetch');
async function listProjects() {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/availableProjects';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
const projects = resp['projectInfo'];
console.log('Project total: ' + projects.length);
console.log('');
for (let i in projects) {
const project = projects[i];
console.log('Project ' + i);
console.log('ID: ' + project['project']);
console.log('Display Name: ' + project['displayName']);
console.log('');
}
} catch(err) {
console.error(err);
}
}
نتیجه
بدنه پاسخ از فراخوانی به availableProjects.list
حاوی لیستی از اشیاء ProjectInfo
است. اگر لیست پروژه ها خیلی طولانی باشد، بدنه پاسخ همچنین حاوی nextPageToken
است که می توانید از آن به عنوان پارامتر پرس و جو برای دریافت صفحه بعدی پروژه ها استفاده کنید.
در اینجا یک نمونه بدنه پاسخ از یک تماس availableProjects.list
آمده است:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
این پاسخ نمونه دارای دو پروژه Google Cloud است که می تواند خدمات Firebase را به آنها اضافه کند. توجه داشته باشید که فیلد project
نام منبع منحصر به فرد جهانی را برای یک پروژه ارائه می دهد.
میتوانید از هر مقدار project
فهرستشده در پاسخ از availableProjects.list
برای افزودن خدمات Firebase یا افزودن برنامهها به پروژه خود استفاده کنید.
در بخش بعدی، خدمات Firebase را با استفاده از نام منبع projects/first-gcp-project
به First Cloud Project
اضافه می کنیم.
خدمات Firebase را به پروژه خود اضافه کنید
پروژه های Google Cloud می توانند از خدمات ارائه شده توسط Firebase استفاده کنند. در این بخش، نحوه اضافه کردن خدمات Firebase به پروژه Google Cloud موجود خود را به صورت برنامهریزی میآموزید. توجه داشته باشید که میتوانید خدمات Firebase را به پروژه Google Cloud موجود خود در کنسول Firebase اضافه کنید.
درخواست
projects.addFirebase
فراخوانی کنید. بدنه درخواست برای این تماس باید خالی باشد.
در اینجا یک مثال برای Node.js برای افزودن خدمات Firebase به پروژه Google Cloud شما آورده شده است:
const fetch = require('node-fetch');
async function addFirebase(projectId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addFirebase';
const options = {
method: 'POST',
// Use a manual access token here since explicit user access token is required.
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
نتیجه
نتیجه تماس با projects.addFirebase
یک Operation
است. قبل از اینکه بتوانید سایر نقاط پایانی مرتبط با Firebase را برای پروژه خود فراخوانی کنید، عملیات باید موفقیت آمیز باشد.
برای بررسی موفقیتآمیز بودن عملیات، میتوانید تا زمانی که مقدار done
true
باشد و response
آن از نوع FirebaseProject
باشد، operations.get
روی عملیات فراخوانی کنید. اگر عملیات ناموفق باشد، error
آن روی google.rpc.Status
تنظیم می شود.
بدنه پاسخ یک تماس operations.get
در اینجا آمده است:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.FirebaseProject",
"projectId": "first-cloud-project",
"projectNumber": "...",
"displayName": "First Cloud Project",
"name": "projects/first-cloud-project",
"resources": {
"hostingSite": "first-cloud-project",
"realtimeDatabaseInstance": "first-cloud-project"
}
}
}
از آنجایی که done
true
است و نوع response
FirebaseProject
است، پروژه Google Cloud اکنون دارای خدمات Firebase است. پاسخ همچنین حاوی اطلاعات مفید دیگری در مورد FirebaseProject
جدید ایجاد شده شما مانند projectNumber
و resources
پیش فرض آن است. Operation
پس از اتمام به طور خودکار حذف می شود.
برنامه های Firebase را به پروژه خود اضافه کنید
بسیاری از برنامههای مختلف میتوانند از FirebaseProject
استفاده کنند، از جمله iOS، Android، و برنامههای وب. در این بخش، یاد خواهید گرفت که چگونه برنامه های Firebase را به صورت برنامه ریزی شده به FirebaseProject
موجود خود اضافه کنید. توجه داشته باشید که میتوانید Firebase Apps را به پروژه Firebase موجود خود در کنسول Firebase اضافه کنید.
یک نوع برنامه Firebase را برای افزودن به پروژه Firebase خود انتخاب کنید.
پروژه Firebase خود را به یک حساب Google Analytics پیوند دهید (اختیاری)
میتوانید یک حساب Google Analytics موجود را به صورت برنامهنویسی به FirebaseProject
موجود خود پیوند دهید. توجه داشته باشید که میتوانید پروژه Firebase موجود خود را به Google Analytics در برگه ادغام تنظیمات پروژه خود پیوند دهید.
فراخوانی به projects.addGoogleAnalytics
به یک analytics_resource
نیاز دارد که میتواند یک analyticsAccountId
یا analyticsPropertyId
باشد:
یک
analyticsAccountId
موجود را برای ارائه یک ویژگی Google Analytics جدید در حساب مشخص شده مشخص کنید و ویژگی جدید را با پروژه Firebase خود مرتبط کنید.یک
analyticsPropertyId
موجود را برای مرتبط کردن ویژگی Google Analytics با پروژه Firebase خود مشخص کنید.
میتوانید هم analyticsAccountId
و هم هر analyticsPropertyId
موجود را در وبسایت Google Analytics پیدا کنید.
وقتی با projects.addGoogleAnalytics
تماس می گیرید:
اولین بررسی مشخص میکند که آیا جریانهای داده موجود در ویژگی Google Analytics با برنامههای Firebase موجود در
FirebaseProject
شما مطابقت دارد (بر اساسpackageName
یاbundleId
مرتبط با جریان داده). سپس، در صورت لزوم، جریانهای داده و برنامهها به هم مرتبط میشوند. توجه داشته باشید که این پیوند خودکار فقط برای برنامههای اندروید و برنامههای iOS اعمال میشود.اگر هیچ جریان داده متناظری برای برنامه های Firebase شما یافت نشد، جریان های داده جدیدی در ویژگی Google Analytics برای هر یک از برنامه های Firebase شما ارائه می شود. توجه داشته باشید که یک جریان داده جدید همیشه برای یک برنامه وب ارائه می شود حتی اگر قبلاً با یک جریان داده در ویژگی Analytics شما مرتبط باشد.
درباره سلسله مراتب و ساختار حساب های Google Analytics در اسناد Analytics بیشتر بیاموزید.
درخواست
با projects.addGoogleAnalytics
تماس بگیرید.
در بدنه درخواست برای فراخوانی مثال ما به project.addGoogleAnalytics
، ما حساب Google Analytics analyticsAccountId
خود را مشخص میکنیم. این تماس یک ویژگی Google Analytics جدید ارائه میکند و ویژگی جدید را با FirebaseProject
مرتبط میکند.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
در اینجا یک مثال برای Node.js برای پیوند دادن یک پروژه Firebase با یک حساب Google Analytics آورده شده است:
const fetch = require('node-fetch');
async function addGoogleAnalytics(projectId, analyticsAccountId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addGoogleAnalytics';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'analyticsAccountId': analyticsAccountId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
نتیجه
نتیجه تماس با projects.addGoogleAnalytics
یک Operation
است. قبل از اینکه بتوانید سایر نقاط پایانی مرتبط با Firebase را برای پروژه خود فراخوانی کنید، عملیات باید موفقیت آمیز باشد.
برای بررسی موفقیتآمیز بودن عملیات، میتوانید تا زمانی که مقدار done
true
باشد و response
از نوع analyticsDetails
باشد، operations.get
روی عملیات فراخوانی کنید. اگر عملیات ناموفق باشد، error
آن روی google.rpc.Status
تنظیم می شود.
بدنه پاسخ یک تماس operations.get
در اینجا آمده است:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
از آنجایی که done
درست است و نوع response
آن analyticsDetails
است، FirebaseProject
اکنون به حساب Google Analytics مشخص شده مرتبط است. Operation
پس از اتمام به طور خودکار حذف می شود.