تتيح Firebase Management REST API إمكانية الإعداد الآلي لمشاريع Firebase وإدارتها، بما في ذلك موارد Firebase وتطبيقات Firebase الخاصة بالمشروع.
توضّح هذه النظرة العامة سير العمل العام لإضافة موارد Firebase و التطبيقات إلى Google Cloud مشروع حالي لا يستخدم خدمات Firebase بعد.
يمكنك الانتقال سريعًا إلى أقسام معينة من هذه الصفحة إذا كنت تريد فقط:
- إضافة خدمات Firebase إلى مشروعك
- إضافة تطبيقات Firebase إلى مشروعك على Firebase
- ربط مشروعك على Firebase بحساب على "إحصاءات Google"
قبل اتّباع أي خطوات في هذه الصفحة، تأكَّد من تفعيل واجهة برمجة التطبيقات.
للحصول على معلومات عن إدارة الوصول إلى واجهة برمجة التطبيقات Firebase Management API، يُرجى الانتقال إلى مستندات واجهة برمجة التطبيقات Cloud Identity Access Management (IAM) API .
قبل البدء
قبل البدء، يجب تفعيل Management API لمشروعك على Google Cloud وإنشاء رمز الدخول.
تفعيل Management REST API لمشروعك على Google Cloud
عليك تفعيل واجهة برمجة التطبيقات Firebase Management API لاستخدامها مع مشروعك على Google Cloud، إذا لم يسبق لك إجراء ذلك.
- افتح صفحة Firebase Management API في وحدة تحكّم Google APIs.
- اختَر مشروع Google Cloud عندما يُطلب منك ذلك.
- انقر على تفعيل في صفحة Firebase Management API.
إنشاء رمز الدخول إلى واجهة برمجة التطبيقات
في ما يلي مثال على بروتوكول Node.js الذي يسترد رمز الدخول.
أولاً، إذا لم تكن في بيئة Google Cloud، عليك ضبط
متغيّر بيئة GOOGLE_APPLICATION_CREDENTIALS
على المسار إلى مفتاح حساب الخدمة.
نظام التشغيل Linux أو macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
باستخدام 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
يمكنك استخدامه كمَعلمة طلب بحث للحصول على الصفحة التالية من projects.
إليك مثال على نص استجابة لمكالمة 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 إلى First Cloud Project
باستخدام
اسم مورد projects/first-gcp-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 لمشروعك، يجب أن تكون العملية ناجحة.
للتحقّق من نجاح العملية، يمكنك استدعاء
operations.get
على العملية إلى أن تصبح قيمة done
هي true
وresponse
من نوع
FirebaseProject
. إذا تعذَّر تنفيذ العملية، يتم ضبط 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 إلى
مشروعك الحالي في Firebase في وحدة تحكّم Firebase.
اختَر نوع تطبيق Firebase لإضافته إلى مشروعك على Firebase.
يمكنك إضافة تطبيق Firebase المتوافق مع Android إلى مشروع Firebase الحالي.
الطلب
يمكنك الاتصال بالرقم
projects.androidApps.create
.
في ما يلي كيفية إنشاء محتوى طلبك:
مطلوب:
packageName
: اسم الحزمة الرسمي لتطبيق Android كما سيظهر في Google Play Console
اختيارية، ولكن ننصح بها:
displayName
: الاسم المعروض الذي حدّده المستخدم للتطبيق. وهذه القيمة مفيدة للعثور على تطبيقك لاحقًا في وحدة تحكّم Firebase.
في نص الطلب للمثال، سنستخدم packageName
وdisplayName
:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
في ما يلي مثال على استخدام Node.js لإضافة تطبيق Android على Firebase إلى مشروعك على Firebase:
const fetch = require('node-fetch');
async function addAndroidApp(projectId, displayName, packageName) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/androidApps';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'displayName': displayName,
'packageName': packageName
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
النتيجة
نتيجة المكالمة إلى projects.androidApps.create
هي
Operation
. قبل أن تتمكّن من
استدعاء نقاط نهاية أخرى ذات صلة بـ Firebase لمشروعك، يجب أن تتم العملية
بنجاح.
للتأكّد من نجاح العملية، يمكنك استدعاء
operations.get
في العملية إلى أن تصبح قيمة done
هي true
وتكون قيمة response
من النوع AndroidApp
. إذا تعذَّر تنفيذ العملية، يتم ضبط error
على
google.rpc.Status
.
في ما يلي نصّ استجابة طلب operations.get
:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AndroidApp",
"name": "projects/first-cloud-project/androidApps/...",
"appId": "...",
"displayName": "My Firebase Android App",
"projectId": "first-cloud-project",
"packageName": "com.firebase.android"
}
}
بما أنّ done
هو true
ونوع response
هو AndroidApp
، أصبح لدى
FirebaseProject
الآن AndroidApp
. ويتضمّن الردّ أيضًا معلومات مفيدة أخرى حول تطبيق Firebase Android الذي تم إنشاؤه حديثًا، مثل appId
الفريد في Firebase. ويتم حذف Operation
تلقائيًا بعد
الإكمال.
إضافة شهادات SHA
يمكنك إضافة شهادات SHA إلى أي تطبيق Android حالي في Firebase من خلال الاتصال بالرقم
projects.androidApps.sha.create
.
يجب أن يحتوي نص طلب استدعاء هذه الطريقة على حقل name
فارغ.
نتيجة هذا الطلب هي مثيل تم إنشاؤه حديثًا من
ShaCertificate
.
عند الاتصال بالرقم projects.androidApps.sha.create
، عليك تقديم قيمة تجزئة صالحة لشهادة SHA-1 أو SHA-256. يمكنك الحصول على تجزئة SHA لشهادة التوقيع باستخدام الأمر signingReport
gradle:
./gradlew signingReport
لمزيد من المعلومات، يُرجى الانتقال إلى Google APIs لنظام Android.
ربط مشروعك على Firebase بحساب على "إحصاءات Google" (اختياري)
يمكنك ربط حساب حالي
على "إحصاءات Google" بحسابك الحالي
FirebaseProject
آليًا. يُرجى العِلم أنّه يمكنك أيضًا ربط مشروعك الحالي على Firebase
بـ "إحصاءات Google" في علامة تبويب
عمليات الدمج
ضمن إعدادات المشروع.
تتطلّب الدعوة إلى projects.addGoogleAnalytics
استخدام analytics_resource
،
يمكن أن يكون analyticsAccountId
أو analyticsPropertyId
:
حدِّد
analyticsAccountId
حاليًا لتوفير موقع جديد على "إحصاءات Google" ضمن الحساب المحدّد وربط الموقع الجديد بمشروعك على Firebase.حدِّد
analyticsPropertyId
حاليًا لربط موقع "إحصاءات Google" بمشروعك على Firebase.
يمكنك العثور على كلٍّ من analyticsAccountId
وأي analyticsPropertyId
حالية على موقع "إحصاءات Google" الإلكتروني.
عند الاتصال بالرقم projects.addGoogleAnalytics
:
يحدِّد الفحص الأول ما إذا كانت أيّ مصادر بيانات حالية في موقع "إحصاءات Google" تتوافق مع أيّ تطبيقات حالية على Firebase في
FirebaseProject
(استنادًا إلىpackageName
أوbundleId
المرتبط بمصدر البيانات). وبعد ذلك، يتم ربط مصادر البيانات والتطبيقات، حسب الاقتضاء. لاحظ أن هذا الربط التلقائي لا ينطبق إلا على تطبيقات Android وتطبيقات iOS.في حال عدم العثور على مصادر بيانات مقابلة لتطبيقاتك على Firebase، يتم توفير مصادر بيانات جديدة في موقع "إحصاءات Google" لكل من تطبيقاتك على Firebase. تجدُر الإشارة إلى أنّه يتم دائمًا توفير مصدر بيانات جديد لتطبيق على الويب، حتى إذا كان مرتبطًا في السابق بمصدر بيانات في موقعك على "إحصاءات Google".
اطّلِع على مزيد من المعلومات عن التسلسل الهرمي وبنية حسابات "إحصاءات Google" في مستندات "إحصاءات Google".
طلب
يمكنك الاتصال بالرقم
projects.addGoogleAnalytics
.
في نص الطلب الخاص بمثال طلب project.addGoogleAnalytics
، سنحدد analyticsAccountId
لحساب "إحصاءات Google". ستؤدي هذه الدعوة إلى
توفير موقع جديد على "إحصاءات Google" وربط الموقع الجديد
بالFirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
في ما يلي مثال على Node.js لربط مشروع على Firebase بحساب على "إحصاءات Google":
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 لمشروعك، يجب أن تتم العملية
بنجاح.
للتحقّق من نجاح العملية، يمكنك استدعاء operations.get
في
العملية إلى أن تصبح قيمة done
هي true
ويكون response
من النوع
analyticsDetails
. إذا تعذّر إتمام العملية، يتم ضبط 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" المحدّد. ويتم
حذف Operation
تلقائيًا بعد اكتمالها.