फायरबेस मैनेजमेंट रेस्ट एपीआई प्रोजेक्ट के फायरबेस संसाधनों और फायरबेस ऐप्स सहित फायरबेस परियोजनाओं के प्रोग्रामेटिक सेटअप और प्रबंधन को सक्षम बनाता है।
यह अवलोकन मौजूदा Google क्लाउड प्रोजेक्ट में फ़ायरबेस संसाधनों और ऐप्स को जोड़ने के लिए सामान्य वर्कफ़्लो का वर्णन करता है जो वर्तमान में फ़ायरबेस सेवाओं का उपयोग नहीं करता है।
यदि आप चाहें तो आप इस पृष्ठ के विशिष्ट अनुभागों पर जा सकते हैं:
- अपने प्रोजेक्ट में फायरबेस सेवाएँ जोड़ें
- अपने फायरबेस प्रोजेक्ट में फायरबेस ऐप्स जोड़ें
- अपने फायरबेस प्रोजेक्ट को Google Analytics खाते से लिंक करें
- अपने प्रोजेक्ट के डिफ़ॉल्ट स्थान को अंतिम रूप दें
इस पृष्ठ पर किसी भी चरण का पालन करने से पहले, सुनिश्चित करें कि आपने एपीआई सक्षम किया है ।
फायरबेस प्रबंधन एपीआई के लिए एक्सेस प्रबंधन के बारे में जानकारी के लिए, क्लाउड आइडेंटिटी एक्सेस मैनेजमेंट (आईएएम) एपीआई दस्तावेज़ पर जाएं।
शुरू करने से पहले
शुरू करने से पहले, आपको अपने Google क्लाउड प्रोजेक्ट के लिए प्रबंधन एपीआई को सक्षम करना होगा और अपना एक्सेस टोकन जेनरेट करना होगा ।
अपने Google क्लाउड प्रोजेक्ट के लिए प्रबंधन REST API सक्षम करें
यदि आपने पहले से ऐसा नहीं किया है, तो आपको अपने Google क्लाउड प्रोजेक्ट के साथ उपयोग के लिए फायरबेस प्रबंधन एपीआई को सक्षम करना होगा।
- Google API कंसोल में Firebase प्रबंधन API पृष्ठ खोलें।
- संकेत मिलने पर, अपना Google क्लाउड प्रोजेक्ट चुनें।
- फायरबेस प्रबंधन एपीआई पृष्ठ पर सक्षम करें पर क्लिक करें।
अपना एपीआई एक्सेस टोकन जेनरेट करें
यहां Node.js के लिए एक उदाहरण दिया गया है जो आपके एक्सेस टोकन को पुनः प्राप्त करता है।
सबसे पहले, यदि आप Google क्लाउड परिवेश में नहीं हैं, तो GOOGLE_APPLICATION_CREDENTIALS
परिवेश चर को अपनी सेवा खाता कुंजी के पथ पर सेट करें।
लिनक्स या macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
खिड़कियाँ
पॉवरशेल के साथ:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
फिर, अपने सेवा खाता क्रेडेंशियल से एक्सेस टोकन प्राप्त करने के लिए फायरबेस एडमिन एसडीके का उपयोग करें:
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 क्लाउड प्रोजेक्ट पा सकते हैं जो फायरबेस सेवाओं को जोड़ने के लिए उपलब्ध हैं।
अनुरोध
availableProjects.list
कॉल करें। इस कॉल के लिए अनुरोध निकाय खाली होना चाहिए.
उपलब्ध Google क्लाउड परियोजनाओं की सूची का अनुरोध करने के लिए Node.js के लिए यहां एक उदाहरण दिया गया है:
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 क्लाउड प्रोजेक्ट हैं जिनमें फ़ायरबेस सेवाएँ जोड़ी जा सकती हैं। ध्यान दें कि project
फ़ील्ड किसी प्रोजेक्ट के लिए विश्व स्तर पर अद्वितीय संसाधन नाम प्रदान करता है।
आप Firebase सेवाओं को जोड़ने या अपने प्रोजेक्ट में ऐप्स जोड़ने के लिए availableProjects.list
से प्रतिक्रिया में सूचीबद्ध किसी भी project
मान का उपयोग कर सकते हैं।
अगले भाग में, हम projects/first-gcp-project
संसाधन नाम का उपयोग करके First Cloud Project
में फायरबेस सेवाएं जोड़ेंगे।
अपने प्रोजेक्ट में फायरबेस सेवाएँ जोड़ें
Google क्लाउड प्रोजेक्ट फायरबेस द्वारा दी जाने वाली सेवाओं का लाभ उठा सकते हैं। इस अनुभाग में, आप सीखेंगे कि अपने मौजूदा Google क्लाउड प्रोजेक्ट में प्रोग्रामेटिक रूप से फायरबेस सेवाओं को कैसे जोड़ें। ध्यान दें कि आप फायरबेस कंसोल में अपने मौजूदा Google क्लाउड प्रोजेक्ट में फायरबेस सेवाएं भी जोड़ सकते हैं।
अनुरोध
projects.addFirebase
पर कॉल करें। इस कॉल के लिए अनुरोध निकाय खाली होना चाहिए.
आपके Google क्लाउड प्रोजेक्ट में फ़ायरबेस सेवाओं को जोड़ने के लिए 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
है। इससे पहले कि आप अपने प्रोजेक्ट के लिए अन्य फायरबेस-संबंधित एंडपॉइंट्स को कॉल कर सकें, ऑपरेशन सफल होना चाहिए।
यह जांचने के लिए कि ऑपरेशन सफल है या नहीं, आप ऑपरेशन पर 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 क्लाउड प्रोजेक्ट में अब फायरबेस सेवाएं हैं। प्रतिक्रिया में आपके नव निर्मित FirebaseProject
के बारे में अन्य उपयोगी जानकारी भी शामिल है, जैसे इसका projectNumber
और इसके डिफ़ॉल्ट resources
। Operation
पूरा होने के बाद स्वचालित रूप से हटा दिया जाता है।
अपने प्रोजेक्ट में फायरबेस ऐप्स जोड़ें
कई अलग-अलग ऐप्स FirebaseProject
का उपयोग कर सकते हैं, जिनमें iOS, Android और वेब ऐप्स शामिल हैं। इस अनुभाग में, आप सीखेंगे कि अपने मौजूदा FirebaseProject
में प्रोग्रामेटिक रूप से फायरबेस ऐप्स कैसे जोड़ें। ध्यान दें कि आप फायरबेस कंसोल में अपने मौजूदा फायरबेस प्रोजेक्ट में फायरबेस ऐप्स भी जोड़ सकते हैं।
अपने फायरबेस प्रोजेक्ट में जोड़ने के लिए एक प्रकार का फायरबेस ऐप चुनें।
आप अपने मौजूदा फायरबेस प्रोजेक्ट में एक फायरबेस एंड्रॉइड ऐप जोड़ सकते हैं।
अनुरोध
projects.androidApps.create
पर कॉल करें। अपना अनुरोध निकाय कैसे बनाएं यहां बताया गया है:
आवश्यक:
-
packageName
: एंड्रॉइड ऐप का कैनोनिकल पैकेज नाम जैसा कि यह Google Play डेवलपर कंसोल में दिखाई देगा।
-
वैकल्पिक, लेकिन अनुशंसित:
-
displayName
: ऐप का उपयोगकर्ता द्वारा निर्दिष्ट डिस्प्ले नाम। यह मान बाद में आपके ऐप को फायरबेस कंसोल में ढूंढने के लिए उपयोगी है।
-
हमारे उदाहरण के लिए अनुरोध निकाय में, हम packageName
और displayName
उपयोग करेंगे:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
आपके फायरबेस प्रोजेक्ट में फायरबेस एंड्रॉइड ऐप जोड़ने के लिए Node.js के लिए यहां एक उदाहरण दिया गया है:
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
है। इससे पहले कि आप अपने प्रोजेक्ट के लिए अन्य फायरबेस-संबंधित एंडपॉइंट्स को कॉल कर सकें, ऑपरेशन सफल होना चाहिए।
यह जांचने के लिए कि ऑपरेशन सफल है या नहीं, आप ऑपरेशन पर 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
है। प्रतिक्रिया में आपके नव निर्मित फायरबेस एंड्रॉइड ऐप के बारे में अन्य उपयोगी जानकारी भी शामिल है, जैसे अद्वितीय फायरबेस appId
। Operation
पूरा होने के बाद स्वचालित रूप से हटा दिया जाता है।
SHA प्रमाणपत्र जोड़ें
आप projects.androidApps.sha.create
पर कॉल करके किसी भी मौजूदा फायरबेस एंड्रॉइड ऐप में SHA प्रमाणपत्र जोड़ सकते हैं। इस विधि कॉल के लिए अनुरोध निकाय में एक खाली name
फ़ील्ड होना चाहिए। इस कॉल का परिणाम ShaCertificate
का एक नव निर्मित उदाहरण है।
projects.androidApps.sha.create
पर कॉल करते समय, आपको एक वैध SHA-1 या SHA-256 प्रमाणपत्र हैश प्रदान करना होगा। आप ग्रेडल signingReport
कमांड के साथ अपने हस्ताक्षर प्रमाणपत्र का SHA हैश प्राप्त कर सकते हैं:
./gradlew signingReport
अधिक जानकारी के लिए, Android के लिए Google API पर जाएं।
अपने फायरबेस प्रोजेक्ट को Google Analytics खाते से लिंक करें (वैकल्पिक)
आप किसी मौजूदा Google Analytics खाते को अपने मौजूदा FirebaseProject
से प्रोग्रामेटिक रूप से लिंक कर सकते हैं। ध्यान दें कि आप अपने प्रोजेक्ट सेटिंग्स के एकीकरण टैब में अपने मौजूदा फायरबेस प्रोजेक्ट को Google Analytics से भी लिंक कर सकते हैं।
projects.addGoogleAnalytics
पर कॉल के लिए analytics_resource
आवश्यकता होती है, जो या तो analyticsAccountId
या analyticsPropertyId
हो सकता है:
निर्दिष्ट खाते के भीतर एक नई Google Analytics प्रॉपर्टी का प्रावधान करने और नई प्रॉपर्टी को अपने फायरबेस प्रोजेक्ट के साथ संबद्ध करने के लिए एक मौजूदा
analyticsAccountId
निर्दिष्ट करें।Google Analytics प्रॉपर्टी को अपने Firebase प्रोजेक्ट के साथ संबद्ध करने के लिए एक मौजूदा
analyticsPropertyId
निर्दिष्ट करें।
आप Google Analytics वेबसाइट पर अपना analyticsAccountId
और कोई भी मौजूदा analyticsPropertyId
दोनों पा सकते हैं।
जब आप projects.addGoogleAnalytics
कॉल करते हैं:
पहली जांच यह निर्धारित करती है कि क्या Google Analytics प्रॉपर्टी में कोई मौजूदा डेटा स्ट्रीम आपके
FirebaseProject
में किसी मौजूदा फायरबेस ऐप्स से मेल खाती है (डेटा स्ट्रीम से जुड़ेpackageName
याbundleId
के आधार पर)। फिर, जैसा लागू हो, डेटा स्ट्रीम और ऐप्स लिंक हो जाते हैं। ध्यान दें कि यह ऑटो-लिंकिंग केवल Android ऐप्स और iOS ऐप्स पर लागू होती है।यदि आपके फायरबेस ऐप्स के लिए कोई संबंधित डेटा स्ट्रीम नहीं मिलती है, तो आपके प्रत्येक फायरबेस ऐप्स के लिए Google Analytics प्रॉपर्टी में नई डेटा स्ट्रीम का प्रावधान किया जाता है। ध्यान दें कि एक वेब ऐप के लिए हमेशा एक नई डेटा स्ट्रीम का प्रावधान किया जाता है, भले ही वह पहले आपकी एनालिटिक्स प्रॉपर्टी में डेटा स्ट्रीम से जुड़ा हो।
Analytics दस्तावेज़ में Google Analytics खातों के पदानुक्रम और संरचना के बारे में अधिक जानें।
अनुरोध
projects.addGoogleAnalytics
कॉल करें।
project.addGoogleAnalytics
पर हमारे उदाहरण कॉल के अनुरोध निकाय में, हम अपना Google Analytics खाता analyticsAccountId
निर्दिष्ट करेंगे। यह कॉल एक नई Google Analytics प्रॉपर्टी का प्रावधान करेगी और नई प्रॉपर्टी को FirebaseProject
के साथ संबद्ध करेगी।
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
यहां Node.js के लिए फ़ायरबेस प्रोजेक्ट को 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
है। इससे पहले कि आप अपने प्रोजेक्ट के लिए अन्य फायरबेस-संबंधित एंडपॉइंट्स को कॉल कर सकें, ऑपरेशन सफल होना चाहिए।
यह जांचने के लिए कि ऑपरेशन सफल है या नहीं, आप ऑपरेशन पर 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
पूरा होने के बाद स्वचालित रूप से हटा दिया जाता है।
अपने प्रोजेक्ट के डिफ़ॉल्ट स्थान को अंतिम रूप दें (वैकल्पिक)
यदि आपका फायरबेस प्रोजेक्ट क्लाउड फायरस्टोर, क्लाउड स्टोरेज या ऐप इंजन ऐप का उपयोग करेगा, तो आप प्रोग्रामेटिक रूप से अपने प्रोजेक्ट के लिए डिफ़ॉल्ट Google क्लाउड प्लेटफ़ॉर्म (जीसीपी) संसाधन स्थान को अंतिम रूप दे सकते हैं। ध्यान दें कि आप फायरबेस कंसोल में एक स्थान भी चुन सकते हैं।
इस स्थान को सेट करने से पहले, यह जानने के लिए कि आपके प्रोजेक्ट के लिए कौन सा स्थान सर्वोत्तम है, अपने प्रोजेक्ट के लिए स्थानों का चयन करें देखें। आपको अपने प्रोजेक्ट के लिए मान्य स्थानों की सूची लौटाने के लिए projects.availableLocations
को भी कॉल करना चाहिए क्योंकि यदि आपका प्रोजेक्ट Google क्लाउड संगठन का हिस्सा है, तो आपकी संगठन नीतियां प्रतिबंधित कर सकती हैं कि कौन से स्थान आपके प्रोजेक्ट के लिए मान्य हैं।
इस defaultLocation.finalize
विधि को कॉल करने से आपके द्वारा अनुरोध निकाय में प्रदान किए गए locationId
में स्थित एक डिफ़ॉल्ट क्लाउड स्टोरेज बकेट के साथ एक ऐप इंजन एप्लिकेशन बन जाता है।
यदि Project
पहले से ही एक ऐप इंजन एप्लिकेशन है या यह defaultLocation.finalize
विधि पहले से कॉल की गई थी, तो डिफ़ॉल्ट GCP संसाधन स्थान पहले ही निर्दिष्ट किया जा सकता है।
अनुरोध
projects.defaultLocation.finalize
पर कॉल करें। अपना अनुरोध निकाय कैसे बनाएं यहां बताया गया है:
आवश्यक:
-
locationId
: वह स्थान जहां आपका डेटा GCP सेवाओं के लिए संग्रहीत किया जाता है, जिनके लिए क्लाउड फायरस्टोर या क्लाउड स्टोरेज जैसी स्थान सेटिंग की आवश्यकता होती है।
-
{
"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
है। इससे पहले कि आप अपने प्रोजेक्ट के लिए अन्य फायरबेस-संबंधित एंडपॉइंट्स को कॉल कर सकें, ऑपरेशन सफल होना चाहिए।
यह जांचने के लिए कि ऑपरेशन सफल है या नहीं, आप ऑपरेशन पर operations.get
तब तक कॉल कर सकते हैं जब तक कि done
मान true
न हो और इसकी response
google.protobuf.Empty
प्रकार की न हो। यदि ऑपरेशन असफल होता है, तो प्रतिक्रिया निकाय error
google.rpc.Status
प्रकार की होगी। Operation
पूरा होने के बाद स्वचालित रूप से हटा दिया जाता है।