Management REST API का इस्तेमाल करके, Firebase प्रोजेक्ट को सेट अप और मैनेज करें

Firebase मैनेजमेंट REST API इस्तेमाल करके, प्रोग्रामैटिक सेटअप और Firebase प्रोजेक्ट का मैनेजमेंट. इसमें प्रोजेक्ट की Firebase संसाधन और Firebase ऐप्लिकेशन.

इस खास जानकारी में, Firebase के संसाधनों को जोड़ने के सामान्य वर्कफ़्लो के बारे में बताया गया है और मौजूदा Google Cloud ऐप्लिकेशन प्रोजेक्ट जो फ़िलहाल Firebase सेवाओं का इस्तेमाल नहीं करता है.

अगर आपको सिर्फ़ ये काम करने हैं, तो इस पेज के किसी सेक्शन पर जाएं:

इस पेज पर दिया गया तरीका अपनाने से पहले, पक्का करें कि एपीआई को चालू करें.

Firebase Management API के लिए ऐक्सेस मैनेजमेंट के बारे में जानकारी के लिए, यहां जाएं Cloud Identity ऐक्सेस मैनेजमेंट (IAM) एपीआई दस्तावेज़ में दिया गया है.

शुरू करने से पहले

शुरू करने से पहले, आपको इनके लिए Management API चालू करना होगा अपने Google Cloud प्रोजेक्ट और अपना ऐक्सेस टोकन जनरेट करें.

अपने Google Cloud प्रोजेक्ट के लिए, Management REST API चालू करें

अगर आपने पहले से इसे सक्षम नहीं किया है, तो आपको Firebase मैनेजमेंट एपीआई का इस्तेमाल अपने Google Cloud प्रोजेक्ट के लिए किया जा सकता है.

  1. खोलें Firebase मैनेजमेंट एपीआई पेज पर जाएं.
  2. जब कहा जाए, तब अपना Google Cloud प्रोजेक्ट चुनें.
  3. Firebase Management API पेज पर, चालू करें पर क्लिक करें.

अपना एपीआई ऐक्सेस टोकन जनरेट करें

यहां Node.js का एक उदाहरण दिया गया है, जो आपका ऐक्सेस टोकन फिर से हासिल करता है.

सबसे पहले, अगर आप Google Cloud के प्लैटफ़ॉर्म पर नहीं हैं, तो आपके पाथ पर GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल सेवा खाते की कुंजी.

Linux या 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 एडमिन 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 वैल्यू का इस्तेमाल किया जा सकता है Firebase सेवाएं जोड़ने के लिए availableProjects.list या अपने प्रोजेक्ट में ऐप्लिकेशन जोड़ें.

अगले सेक्शन में, हम इसका इस्तेमाल करके First Cloud Project में Firebase सेवाओं को जोड़ेंगे projects/first-gcp-project संसाधन का नाम.

अपने प्रोजेक्ट में Firebase की सेवाएं जोड़ना

Google Cloud प्रोजेक्ट, Firebase से मिलने वाली सेवाओं का फ़ायदा ले सकते हैं. तय सीमा में इस सेक्शन में, आपको अपने मौजूदा खाते में Firebase सेवाओं को जोड़ने का तरीका प्रोग्राम के हिसाब से Google Cloud प्रोजेक्ट. ध्यान दें कि इसमें Firebase भी जोड़ा जा सकता है Firebase कंसोल में आपके मौजूदा Google Cloud प्रोजेक्ट के लिए सेवाएं इस्तेमाल करनी होंगी.

अनुरोध करें

कॉल करें projects.addFirebase. इस कॉल के अनुरोध का मुख्य हिस्सा खाली होना चाहिए.

Google Cloud में Firebase की सेवाएं जोड़ने के लिए, Node.js का एक उदाहरण यहां दिया गया है प्रोजेक्ट:

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 ऑपरेशन पर तब तकdonetrueresponse 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 प्रोजेक्ट में Firebase का Android ऐप्लिकेशन जोड़ा जा सकता है.

अनुरोध करें

कॉल करें projects.androidApps.create. अनुरोध का मुख्य हिस्सा बनाने का तरीका:

  • आवश्यक:

    • packageName: Android ऐप्लिकेशन का कैननिकल पैकेज नाम ऐप्लिकेशन डेवलपर कंसोल पर दिखाई देता है.
  • ज़रूरी नहीं, लेकिन इनका सुझाव दिया जाता है:

    • displayName: ऐप्लिकेशन के लिए उपयोगकर्ता की ओर से असाइन किया गया डिसप्ले नेम. यह मान है यह आपके ऐप्लिकेशन को बाद में Firebase कंसोल में ढूंढने में मदद करता है.

अपने उदाहरण के लिए, अनुरोध के मुख्य हिस्से में, हम 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 ऑपरेशन पर तब तकdonetrueresponse 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 ऐप्लिकेशन के बारे में उपयोगी जानकारी, जैसे यूनीक Firebase appId. Operation इतने समय के बाद अपने-आप मिट जाता है पूरा हुआ.

SHA प्रमाणपत्र जोड़ें

आप कॉल करके किसी भी मौजूदा Firebase Android ऐप्लिकेशन में SHA प्रमाणपत्र जोड़ सकते हैं projects.androidApps.sha.create. इस तरीके से किए गए कॉल के अनुरोध के मुख्य हिस्से में, name फ़ील्ड खाली होना चाहिए. इस कॉल का नतीजा, नया इंस्टेंस है ShaCertificate.

projects.androidApps.sha.create पर कॉल करते समय, आपको कोई मान्य जानकारी देनी होगी SHA-1 या SHA-256 सर्टिफ़िकेट हैश. आपको अपने साइनिंग का SHA हैश मिल सकता है Gradle signingReport कमांड वाला प्रमाणपत्र:

./gradlew signingReport

ज़्यादा जानकारी के लिए, इसके लिए Google API पर जाएं Android.

मौजूदा Google Analytics खाते से अपने मौजूदा खाते में FirebaseProject प्रोग्राम के हिसाब से. ध्यान दें कि आप अपने मौजूदा Firebase प्रोजेक्ट को इंटिग्रेशन प्रोजेक्ट सेटिंग के टैब पर क्लिक करें.

projects.addGoogleAnalytics पर कॉल करने के लिए, analytics_resource, जो analyticsAccountId या analyticsPropertyId हो सकता है:

  • नए Google Analytics का प्रावधान करने के लिए, मौजूदा analyticsAccountId तय करें प्रॉपर्टी को प्रॉपर्टी के तौर पर जोड़ा जा सकता है और नई प्रॉपर्टी को अपने Firebase प्रोजेक्ट.

  • Google Analytics से जोड़ने के लिए, कोई मौजूदा analyticsPropertyId तय करें प्रॉपर्टी से जोड़ा गया है.

analyticsAccountId और मौजूदा, दोनों को ढूंढा जा सकता है Google Analytics पर analyticsPropertyId वेबसाइट पर जाएं.

projects.addGoogleAnalytics को कॉल करने पर:

  1. पहली जांच में यह तय किया जाता है कि Google की कोई मौजूदा डेटा स्ट्रीम Analytics प्रॉपर्टी आपके ब्राउज़र में मौजूद किसी भी मौजूदा Firebase ऐप्लिकेशन के साथ काम करती है FirebaseProject (इससे जुड़े packageName या bundleId पर आधारित डेटा स्ट्रीम). फिर, जैसा लागू हो, डेटा स्ट्रीम और ऐप्लिकेशन लिंक कर दिए जाते हैं. ध्यान दें कि अपने आप लिंक करने की यह सुविधा सिर्फ़ Android ऐप्लिकेशन और iOS ऐप्लिकेशन पर लागू होती है.

  2. अगर आपके 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 से जुड़े अन्य एंडपॉइंट को कॉल कर सकता है, तो इस कार्रवाई के लिए सफल रहे.

कार्रवाई पूरी हुई या नहीं, यह देखने के लिए, इस नंबर पर 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 Analytics खाते से लिंक हो गया है. कॉन्टेंट बनाने प्रक्रिया पूरी होने के बाद, Operation अपने-आप मिट जाता है.

अपने प्रोजेक्ट की डिफ़ॉल्ट जगह तय करें (ज़रूरी नहीं)

अगर आपका Firebase प्रोजेक्ट, Cloud Firestore, Cloud Storage या App Engine ऐप्लिकेशन की मदद से, डिफ़ॉल्ट Google Cloud प्लैटफ़ॉर्म (GCP) के संसाधन की जगह को व्यवस्थित करें. ध्यान दें कि आप चाहें तो कोई जगह चुन सकते हैं यह Firebase कंसोल.

इस जगह को सेट करने से पहले, अपने प्रोजेक्ट में यह जानकारी डालें कि कौनसी जगह आपका प्रोजेक्ट. आपको कॉल भी करना चाहिए projects.availableLocations के लिए मान्य जगहों की सूची दिखेगी, क्योंकि अगर आपका प्रोजेक्ट Google Cloud संगठन का हिस्सा है, तो आपके संगठन की नीतियां इसकी वजह से, कारोबार की जगहों की जानकारी मैनेज की जा सकती है आपके प्रोजेक्ट के लिए मान्य हैं.

इस defaultLocation.finalize तरीके को कॉल करने से App Engine बन जाता है डिफ़ॉल्ट 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 अपने-आप पूरा होने के बाद मिटा दिया जाता है.