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

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

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

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

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

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

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

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

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

अगर आपने पहले से ऐसा नहीं किया है, तो आपको अपने Google Cloud प्रोजेक्ट के साथ इस्तेमाल करने के लिए, Firebase Management API को चालू करना होगा.

  1. Google API Console में Firebase Management API पेज खोलें.
  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 Admin SDK का इस्तेमाल करें:

import { initializeApp, applicationDefault } from "firebase-admin/app";

initializeApp();

async function getAccessToken() {
  try {
    const accessToken = await applicationDefault().getAccessToken();
    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 फ़ील्ड, किसी प्रोजेक्ट के लिए दुनिया भर में यूनीक संसाधन का नाम उपलब्ध कराता है.

अपने प्रोजेक्ट में Firebase की सेवाएं जोड़ने या ऐप्लिकेशन जोड़ने के लिए, availableProjects.list से मिले जवाब में दी गई किसी भी project वैल्यू का इस्तेमाल किया जा सकता है.

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

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

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

अनुरोध करें

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

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

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 ऐप्लिकेशन जोड़ना

iOS, Android, और वेब ऐप्लिकेशन समेत कई अलग-अलग ऐप्लिकेशन, FirebaseProject का इस्तेमाल कर सकते हैं. इस सेक्शन में, आपको अपने मौजूदा FirebaseProject में प्रोग्राम के हिसाब से Firebase ऐप्लिकेशन जोड़ने का तरीका बताया जाएगा. ध्यान दें कि Firebase कंसोल में, अपने मौजूदा Firebase प्रोजेक्ट में भी Firebase ऐप्लिकेशन जोड़े जा सकते हैं.

अपने Firebase प्रोजेक्ट में जोड़ने के लिए, Firebase ऐप्लिकेशन का कोई टाइप चुनें.

iOS+

अपने मौजूदा Firebase प्रोजेक्ट में, Firebase iOS ऐप्लिकेशन जोड़ा जा सकता है.

अनुरोध करें

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

  • आवश्यक:

    • bundleId: iOS ऐप्लिकेशन का कैननिकल बंडल आईडी, जैसा कि वह iOS App Store में दिखेगा.
  • ज़रूरी नहीं, लेकिन सुझाया गया:

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

    • appStoreId: Apple की ओर से आपके ऐप्लिकेशन को असाइन किया गया Apple ID, जो अपने-आप जनरेट होता है. अगर Apple ने पहले से ही कोई appStoreId असाइन किया है, तो उसे डालें.

उदाहरण के लिए, अनुरोध के मुख्य हिस्से में हम सिर्फ़ displayName और bundleId का इस्तेमाल करेंगे:

{
  "displayName": "My Firebase iOS App",
  "bundleId": "com.firebase.ios"
}

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

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

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

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

नतीजा

projects.iosApps.create को कॉल करने पर, Operation मिलता है. अपने प्रोजेक्ट के लिए, Firebase से जुड़े अन्य एंडपॉइंट को कॉल करने से पहले, यह कार्रवाई पूरी होनी चाहिए.

कार्रवाई पूरी हुई है या नहीं, यह देखने के लिए कार्रवाई पर operations.get को तब तक कॉल किया जा सकता है, जब तक done की वैल्यू true न हो जाए और उसका response, IosApp टाइप का न हो जाए. अगर कार्रवाई पूरी नहीं होती है, तो इसका error, google.rpc.Status पर सेट हो जाता है.

यहां operations.get कॉल के रिस्पॉन्स का मुख्य हिस्सा दिया गया है:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.IosApp",
    "name": "projects/first-cloud-project/iosApps/...",
    "appId": "...",
    "displayName": "My Firebase iOS App",
    "projectId": "first-cloud-project",
    "bundleId": "com.firebase.ios"
  }
}

done, true है और response टाइप, IosApp है. इसलिए, अब FirebaseProject में IosApp है. रिस्पॉन्स में, नए बनाए गए Firebase iOS ऐप्लिकेशन के बारे में अन्य काम की जानकारी भी शामिल होती है. जैसे, यूनीक Firebase appId. Operation पूरा होने के बाद, अपने-आप मिट जाता है.

Android

अपने मौजूदा Firebase प्रोजेक्ट में, Firebase Android ऐप्लिकेशन जोड़ा जा सकता है.

अनुरोध करें

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

  • आवश्यक:

    • packageName: Android ऐप्लिकेशन के कैननिकल पैकेज का नाम, जैसा कि यह Google Play Console में दिखेगा.
  • ज़रूरी नहीं, लेकिन सुझाया गया:

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

अपने उदाहरण के लिए, अनुरोध के मुख्य हिस्से में हम packageName और displayName का इस्तेमाल करेंगे:

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

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

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 ऐप्लिकेशन के बारे में अन्य काम की जानकारी भी शामिल होती है. जैसे, यूनीक Firebase appId. Operation पूरा होने के बाद, अपने-आप मिट जाता है.

एसएचए सर्टिफ़िकेट जोड़ना

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

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

./gradlew signingReport

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

वेब

अपने मौजूदा Firebase प्रोजेक्ट में, Firebase वेब ऐप्लिकेशन जोड़ा जा सकता है.

अनुरोध करें

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

  • वैकल्पिक:

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

    • appUrls: वे यूआरएल जहां ऐप्लिकेशन को होस्ट किया गया है. जब कोई Firebase वेब ऐप्लिकेशन किसी Firebase Hosting साइट से जुड़ा होता है, तो Firebase इन फ़ील्ड को अपने-आप भर देता है. इसलिए, अपने अनुरोध के मुख्य हिस्से में इन फ़ील्ड को खाली छोड़ दें.

हम अपने उदाहरण के लिए, अनुरोध के मुख्य हिस्से में सिर्फ़ displayName की जानकारी देंगे:

{
  "displayName": "My Firebase Web App"
}

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

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

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

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

नतीजा

projects.webApps.create को कॉल करने पर, Operation मिलता है. अपने प्रोजेक्ट के लिए, Firebase से जुड़े अन्य एंडपॉइंट को कॉल करने से पहले, यह कार्रवाई पूरी होनी चाहिए.

कार्रवाई पूरी हुई है या नहीं, यह देखने के लिए कार्रवाई पर operations.get को तब तक कॉल किया जा सकता है, जब तक done की वैल्यू true न हो जाए और उसका response, WebApp टाइप का न हो जाए. अगर कार्रवाई पूरी नहीं होती है, तो इसका error, google.rpc.Status पर सेट हो जाता है.

यहां operations.get कॉल के रिस्पॉन्स का मुख्य हिस्सा दिया गया है:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.WebApp",
    "name": "projects/first-cloud-project/webApps/...",
    "appId": "...",
    "displayName": "My Firebase Web App",
    "projectId": "first-cloud-project"
  }
}

done, true है और response टाइप, WebApp है. इसलिए, अब FirebaseProject में WebApp है. रिस्पॉन्स में, आपके बनाए गए नए Firebase वेब ऐप्लिकेशन के बारे में अन्य काम की जानकारी भी शामिल होती है. जैसे, यूनीक Firebase appId. Operation पूरा होने के बाद, अपने-आप मिट जाता है.

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

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

  • किसी मौजूदा analyticsAccountId की जानकारी दें, ताकि उस खाते में नई Google Analytics प्रॉपर्टी बनाई जा सके. साथ ही, नई प्रॉपर्टी को आपके Firebase प्रोजेक्ट से जोड़ा जा सके.

  • Google Analytics प्रॉपर्टी को अपने Firebase प्रोजेक्ट से जोड़ने के लिए, कोई मौजूदा analyticsPropertyId चुनें.

Google Analytics वेबसाइट पर, आपको analyticsAccountId और कोई भी मौजूदा analyticsPropertyId मिल सकता है.

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

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

  2. अगर आपके Firebase ऐप्लिकेशन के लिए कोई डेटा स्ट्रीम नहीं मिलती है, तो आपके हर Firebase ऐप्लिकेशन के लिए, Google Analytics प्रॉपर्टी में नई डेटा स्ट्रीम उपलब्ध कराई जाती हैं. ध्यान दें कि वेब ऐप्लिकेशन के लिए हमेशा एक नई डेटा स्ट्रीम उपलब्ध कराई जाती है. भले ही, वह पहले आपकी Analytics प्रॉपर्टी में किसी डेटा स्ट्रीम से जुड़ी हो.

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