Firebase मैनेजमेंट REST API इस्तेमाल करके, प्रोग्रामैटिक सेटअप और Firebase प्रोजेक्ट का मैनेजमेंट. इसमें प्रोजेक्ट की Firebase संसाधन और Firebase ऐप्लिकेशन.
इस खास जानकारी में, Firebase के संसाधनों को जोड़ने के सामान्य वर्कफ़्लो के बारे में बताया गया है और मौजूदा Google Cloud में ऐप्लिकेशन प्रोजेक्ट जो फ़िलहाल Firebase सेवाओं का इस्तेमाल नहीं करता है.
अगर आपको सिर्फ़ ये काम करने हैं, तो इस पेज के किसी सेक्शन पर जाएं:
- अपने प्रोजेक्ट में Firebase की सेवाएं जोड़ना
- अपने Firebase प्रोजेक्ट में Firebase ऐप्लिकेशन जोड़ना
- अपने Firebase प्रोजेक्ट को Google Analytics खाते से लिंक करना
- अपने प्रोजेक्ट की डिफ़ॉल्ट जगह तय करना
इस पेज पर दिया गया तरीका अपनाने से पहले, पक्का करें कि एपीआई को चालू करें.
Firebase Management API के लिए ऐक्सेस मैनेजमेंट के बारे में जानकारी के लिए, यहां जाएं Cloud Identity ऐक्सेस मैनेजमेंट (IAM) एपीआई दस्तावेज़ में दिया गया है.
शुरू करने से पहले
शुरू करने से पहले, आपको इनके लिए Management API चालू करना होगा आपका Google Cloud प्रोजेक्ट और अपना ऐक्सेस टोकन जनरेट करें.
अपने Google Cloud प्रोजेक्ट के लिए, Management REST API चालू करें
अगर आपने पहले से इसे सक्षम नहीं किया है, तो आपको Firebase मैनेजमेंट एपीआई अपने Google Cloud प्रोजेक्ट के साथ इस्तेमाल करने के लिए.
- खोलें Firebase मैनेजमेंट एपीआई पेज पर जाएं.
- जब कहा जाए, तब अपना 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"
शीशा
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
कार्रवाई पर तब तक लागू होगा, जब तक कि 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 प्रोजेक्ट को Google Analytics खाते से जोड़ें (ज़रूरी नहीं)
मौजूदा
Google Analytics खाते से अपने मौजूदा खाते में
FirebaseProject
प्रोग्राम के हिसाब से. ध्यान दें कि आप अपने मौजूदा
Firebase प्रोजेक्ट को
इंटिग्रेशन
प्रोजेक्ट सेटिंग के टैब पर क्लिक करें.
projects.addGoogleAnalytics
पर कॉल करने के लिए, analytics_resource
,
जो analyticsAccountId
या analyticsPropertyId
हो सकता है:
नए Google Analytics का प्रावधान करने के लिए, मौजूदा
analyticsAccountId
तय करें प्रॉपर्टी को प्रॉपर्टी के तौर पर जोड़ा जा सकता है और नई प्रॉपर्टी को अपने Firebase प्रोजेक्ट.Google Analytics से जोड़ने के लिए, कोई मौजूदा
analyticsPropertyId
तय करें प्रॉपर्टी को सेटअप किया है.
analyticsAccountId
और मौजूदा, दोनों को ढूंढा जा सकता है
Google Analytics पर analyticsPropertyId
वेबसाइट पर जाएं.
projects.addGoogleAnalytics
को कॉल करने पर:
पहली जांच में यह तय किया जाता है कि Google की कोई मौजूदा डेटा स्ट्रीम Analytics प्रॉपर्टी आपके ब्राउज़र में मौजूद किसी भी मौजूदा Firebase ऐप्लिकेशन के साथ काम करती है
FirebaseProject
(इससे जुड़ेpackageName
याbundleId
पर आधारित डेटा स्ट्रीम). फिर, जैसा लागू हो, डेटा स्ट्रीम और ऐप्लिकेशन लिंक कर दिए जाते हैं. ध्यान दें कि अपने आप लिंक करने की यह सुविधा सिर्फ़ Android ऐप्लिकेशन और 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 से जुड़े अन्य एंडपॉइंट को कॉल कर सकता है, तो इस कार्रवाई के लिए
सफल रहे.
कार्रवाई पूरी हुई या नहीं, यह देखने के लिए, इस नंबर पर 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
अपने-आप
पूरा होने के बाद मिटा दिया जाता है.