Google 致力于为黑人社区推动种族平等。查看具体举措
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

قم بإعداد وإدارة مشروع Firebase باستخدام Management REST API

تمكّن واجهة Firebase Management REST API الإعداد وإدارة برمجيًا لمشاريع Firebase ، بما في ذلك موارد Firebase للمشروع وتطبيقات Firebase.

توضح هذه النظرة العامة سير العمل العام لإضافة موارد وتطبيقات Firebase إلى مشروع Google Cloud الحالي الذي لا يستخدم خدمات Firebase حاليًا.

يمكنك الانتقال إلى أقسام محددة من هذه الصفحة إذا كنت تريد فقط:

قبل اتباع أي خطوات في هذه الصفحة ، تأكد من تمكين واجهة برمجة التطبيقات .

للحصول على معلومات حول إدارة الوصول لـ Firebase Management API ، تفضل بزيارة وثائق واجهة برمجة تطبيقات Cloud Identity Access Management (IAM) .

قبل ان تبدأ

قبل أن تبدأ ، ستحتاج إلى تمكين واجهة برمجة تطبيقات الإدارة لمشروع Google Cloud وإنشاء رمز وصول خاص بك .

قم بتمكين Management REST API لمشروع Google Cloud الخاص بك

إذا لم تكن قد قمت بذلك بالفعل ، فستحتاج إلى تمكين Firebase Management API لاستخدامها مع مشروع Google Cloud.

  1. افتح صفحة Firebase Management API في وحدة تحكم Google APIs.
  2. عند المطالبة ، حدد مشروع Google Cloud الخاص بك.
  3. انقر فوق تمكين في صفحة Firebase Management API.

إنشاء رمز وصول API الخاص بك

فيما يلي مثال على Node.js يسترد رمز الوصول الخاص بك.

أولاً ، إذا لم تكن في بيئة Google Cloud ، GOOGLE_APPLICATION_CREDENTIALS بتعيين متغير بيئة GOOGLE_APPLICATION_CREDENTIALS على المسار إلى مفتاح حساب الخدمة.

Linux أو macOS

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

شبابيك

مع بوويرشيل:

$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 الذي يمكنك استخدامه 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 إلى 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 .get call:

{
  "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 ، ومشروع جوجل الغيمة لديها الآن خدمات Firebase. يحتوي على استجابة أيضا غيرها من المعلومات المفيدة حول الخاص بك تم إنشاؤه حديثا FirebaseProject ، شأنه في ذلك شأن projectNumber والافتراضية resources . يتم حذف Operation تلقائيًا بعد الانتهاء.

أضف تطبيقات Firebase إلى مشروعك

يمكن للعديد من التطبيقات المختلفة استخدام FirebaseProject ، بما في ذلك تطبيقات iOS و Android وتطبيقات الويب. في هذا القسم ، ستتعلم كيفية إضافة تطبيقات Firebase إلى FirebaseProject الحالي برمجيًا. لاحظ أنه يمكنك أيضًا إضافة تطبيقات Firebase إلى مشروع Firebase الحالي في وحدة تحكم Firebase .

حدد نوع تطبيق Firebase لإضافته إلى مشروع Firebase.

يمكنك إضافة تطبيق Firebase Android إلى مشروع Firebase الحالي.

طلب

اتصل بـ projects.androidApps.create . فيما يلي كيفية إنشاء نص الطلب الخاص بك:

  • مطلوب:

    • packageName : اسم الحزمة الكنسي تطبيق Android كما تظهر في وحدة التشغيل المطور جوجل.
  • اختياري ، لكن يوصى به:

    • displayName : الاسم المعروض للتطبيق من قبل المستخدم. هذه القيمة مفيدة للعثور على تطبيقك لاحقًا في وحدة تحكم Firebase .

في نص الطلب packageName ، packageName و displayName :

{
  "displayName": "My Firebase Android App"
  "packageName": "com.firebase.android"
}

في ما يلي مثال على Node.js لإضافة تطبيق Firebase Android إلى مشروع 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 في العملية حتى true القيمة done وتكون response من النوع AndroidApp . إذا فشلت العملية ، يتم تعيين error الخاص بها على google.rpc.Status .

هذا هو نص الاستجابة operations.get .get call:

{
  "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 . تحتوي الاستجابة أيضًا على معلومات مفيدة أخرى حول تطبيق appId Android الذي تم إنشاؤه حديثًا ، مثل appId الفريد. يتم حذف Operation تلقائيًا بعد الانتهاء.

أضف شهادات SHA

يمكنك إضافة شهادات SHA إلى أي تطبيق Firebase Android موجود عن طريق الاتصال projects.androidApps.sha.create .androidApps.sha.create. يجب أن يحتوي نص الطلب لاستدعاء الأسلوب هذا على حقل name فارغ. نتيجة هذه المكالمة هي نسخة تم إنشاؤها حديثًا من ShaCertificate .

عند الاتصال projects.androidApps.sha.create .androidApps.sha.create ، تحتاج إلى تقديم تجزئة شهادة SHA-1 أو SHA-256 صالحة. يمكنك الحصول على تجزئة SHA شهادة للتوقيع مع gradle signingReport الأوامر:

./gradlew signingReport

لمزيد من المعلومات ، قم بزيارة Google APIs لنظام Android .

يمكنك ربط حساب 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 :

  1. يحدد الاختيار الأول إذا تيارات أية بيانات موجودة في تتوافق خاصية Google Analytics من أي تطبيقات Firebase الموجودة في الخاص FirebaseProject (استنادا إلى packageName أو bundleId المرتبطة دفق البيانات). ثم ، حسب الاقتضاء ، يتم ربط تدفقات البيانات والتطبيقات. لاحظ أن هذا الارتباط التلقائي ينطبق فقط على تطبيقات Android وتطبيقات iOS.

  2. إذا لم يتم العثور على مصادر بيانات مقابلة لتطبيقات Firebase ، فسيتم توفير مصادر بيانات جديدة في موقع Google Analytics لكل تطبيق من تطبيقات Firebase. لاحظ أنه يتم دائمًا توفير تدفق بيانات جديد لتطبيق الويب حتى إذا كان مرتبطًا سابقًا بتيار بيانات في موقعك في Analytics.

تعرف على المزيد حول التسلسل الهرمي وهيكل حسابات Google Analytics في وثائق Analytics .

طلب

اتصل بـ projects.addGoogleAnalytics .

في نص طلب على سبيل المثال دعوتنا إلى project.addGoogleAnalytics ، فإننا سوف تحديد حساب لدينا تحليلات جوجل 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 لمشروعك ، يجب أن تكون العملية ناجحة.

للتحقق مما إذا كانت العملية ناجحة ، يمكنك استدعاء operations.get في العملية حتى true قيمة done وتكون response من النوع analyticsDetails . إذا فشلت العملية ، يتم تعيين error الخاص بها على google.rpc.Status .

هذا هو نص الاستجابة operations.get .get call:

{
  "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 تلقائيًا بعد الانتهاء.

إنهاء الموقع الافتراضي لمشروعك (اختياري)

إذا كان مشروع Firebase الخاص بك سيستخدم Cloud Firestore أو Cloud Storage أو تطبيق App Engine ، يمكنك إنهاء موقع موارد Google Cloud Platform (GCP) الافتراضي لمشروعك برمجيًا. لاحظ أنه يمكنك أيضًا تحديد موقع في وحدة تحكم Firebase .

قبل تعيين هذا الموقع ، تحقق من تحديد المواقع لمشروعك للحصول على معلومات حول الموقع الأفضل لمشروعك. يجب عليك أيضًا الاتصال بـ projects.availableLocations لإرجاع قائمة بالمواقع الصالحة لمشروعك لأنه إذا كان مشروعك جزءًا من مؤسسة Google Cloud ، فقد تقيد سياسات مؤسستك المواقع الصالحة لمشروعك.

يؤدي استدعاء طريقة defaultLocation.finalize هذه إلى إنشاء تطبيق App Engine مع defaultLocation.finalize Cloud Storage افتراضية موجودة في locationId التي توفرها في نص الطلب.

ربما تم تحديد موقع مورد GCP الافتراضي بالفعل إذا كان Project يحتوي بالفعل على تطبيق App Engine أو تم استدعاء طريقة defaultLocation.finalize هذه مسبقًا.

طلب

استدعاء projects.defaultLocation.finalize . فيما يلي كيفية إنشاء نص الطلب الخاص بك:

  • مطلوب:

    • locationId : الموقع حيث يتم تخزين بياناتك لخدمات GCP التي تتطلب إعداد موقع ، مثل Cloud Firestore أو Cloud Storage.
{
  "locationId": "us-west2"
}

فيما يلي مثال لـ Node.js لإنهاء الموقع الافتراضي لمشروعك:

const fetch = require('node-fetch');

async function finalizeProjectLocation(projectId, locationId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/defaultLocation:finalize';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'locationId': locationId
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

نتيجة

نتيجة استدعاء projects.defaultLocation.finalize هي Operation . قبل أن تتمكن من الاتصال بنقاط النهاية الأخرى المتعلقة بـ Firebase لمشروعك ، يجب أن تكون العملية ناجحة.

للتحقق مما إذا كانت العملية ناجحة يمكنك الاتصال operations.get على العملية حتى قيمة done هو true ولها response من نوع google.protobuf.Empty . إذا لم تنجح العملية ، فسيكون error نص الاستجابة من النوع google.rpc.Status . يتم حذف Operation تلقائيًا بعد الانتهاء.