Firebase मैनेजमेंट REST API की मदद से Firebase प्रोजेक्ट को प्रोग्राम के हिसाब से सेट अप और मैनेज किया जा सकता है. इसमें प्रोजेक्ट के Firebase संसाधन और Firebase ऐप्लिकेशन भी शामिल हैं.
इस खास जानकारी में ऐसे मौजूदा Google Cloud प्रोजेक्ट में Firebase के संसाधनों और ऐप्लिकेशन को जोड़ने के सामान्य वर्कफ़्लो के बारे में बताया गया है जो फ़िलहाल Firebase की सेवाओं का इस्तेमाल नहीं करता है.
अगर आपको सिर्फ़ ये काम करने हैं, तो इस पेज के किसी सेक्शन पर जाएं:
- अपने प्रोजेक्ट में Firebase की सेवाएं जोड़ना
- अपने Firebase प्रोजेक्ट में Firebase ऐप्लिकेशन जोड़ना
- अपने Firebase प्रोजेक्ट को Google Analytics खाते से लिंक करना
इस पेज पर दिया गया कोई भी तरीका अपनाने से पहले, पक्का करें कि आपने एपीआई चालू कर लिया है.
Firebase मैनेजमेंट एपीआई के लिए ऐक्सेस मैनेजमेंट के बारे में ज़्यादा जानने के लिए, Cloud Identity Access Management (IAM) एपीआई दस्तावेज़ देखें.
शुरू करने से पहले
शुरू करने से पहले, आपको अपने Google Cloud प्रोजेक्ट के लिए Management API चालू करना होगा और ऐक्सेस टोकन जनरेट करना होगा.
अपने Google Cloud प्रोजेक्ट के लिए, मैनेजमेंट REST API चालू करना
अगर आपने पहले से Firebase Management API को चालू नहीं किया है, तो इसे चालू करें. इससे Google Cloud प्रोजेक्ट के लिए इसका इस्तेमाल किया जा सकता है.
- Google API कंसोल में, 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 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
पर कॉल करें.
इस कॉल के लिए, अनुरोध का मुख्य हिस्सा खाली होना चाहिए.
उपलब्ध Google Cloud प्रोजेक्ट की सूची का अनुरोध करने के लिए, 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 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 ऐप्लिकेशन जोड़ना
कई अलग-अलग ऐप्लिकेशन FirebaseProject
का इस्तेमाल कर सकते हैं. इनमें iOS, Android, और वेब ऐप्लिकेशन शामिल हैं. इस सेक्शन में, आपको अपने मौजूदा FirebaseProject
में Firebase के ऐप्लिकेशन जोड़ने का तरीका बताया जाएगा. ध्यान दें कि आप Firebase कंसोल में अपने मौजूदा Firebase प्रोजेक्ट में भी Firebase ऐप्लिकेशन जोड़ सकते हैं.
अपने Firebase प्रोजेक्ट में जोड़ने के लिए, Firebase ऐप्लिकेशन का कोई टाइप चुनें.
अपने मौजूदा Firebase प्रोजेक्ट में, Firebase Android ऐप्लिकेशन जोड़ा जा सकता है.
अनुरोध करें
projects.androidApps.create
पर कॉल करें.
अनुरोध का मुख्य हिस्सा बनाने का तरीका:
आवश्यक:
packageName
: Android ऐप्लिकेशन का कैननिकल पैकेज नाम, जो Google Play कंसोल में दिखेगा.
ज़रूरी नहीं, लेकिन हमारा सुझाव है कि आप:
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
अपने-आप मिट जाता है.
SHA सर्टिफ़िकेट जोड़ना
किसी भी मौजूदा Firebase Android ऐप्लिकेशन में SHA सर्टिफ़िकेट
projects.androidApps.sha.create
को कॉल करके जोड़ा जा सकता है.
इस तरीके के कॉल के लिए अनुरोध बॉडी में, खाली name
फ़ील्ड होना चाहिए.
इस कॉल का नतीजा, ShaCertificate
का नया इंस्टेंस है.
projects.androidApps.sha.create
को कॉल करते समय, आपको एक मान्य SHA-1 या SHA-256 सर्टिफ़िकेट हैश देना होगा. आपको Gradle signingReport
निर्देश के साथ, अपने साइनिंग सर्टिफ़िकेट का SHA हैश मिल सकता है:
./gradlew signingReport
ज़्यादा जानकारी के लिए, Android के लिए Google API पर जाएं.
अपने Firebase प्रोजेक्ट को Google Analytics खाते से जोड़ें (ज़रूरी नहीं)
प्रोग्राम के हिसाब से, किसी मौजूदा Google Analytics खाते को मौजूदा FirebaseProject
से लिंक किया जा सकता है. ध्यान दें कि प्रोजेक्ट सेटिंग के इंटिग्रेशन टैब में जाकर, अपने मौजूदा Firebase प्रोजेक्ट को Google Analytics से भी लिंक किया जा सकता है.
projects.addGoogleAnalytics
को कॉल करने के लिए analytics_resource
की ज़रूरत होती है,
जो analyticsAccountId
या analyticsPropertyId
हो सकता है:
बताए गए खाते में एक नई Google Analytics प्रॉपर्टी का प्रावधान करने के लिए, मौजूदा
analyticsAccountId
बताएं और नई प्रॉपर्टी को अपने Firebase प्रोजेक्ट से जोड़ें.Google Analytics प्रॉपर्टी को अपने Firebase प्रोजेक्ट से जोड़ने के लिए, कोई मौजूदा
analyticsPropertyId
डालें.
Google Analytics की वेबसाइट पर, आपको अपना analyticsAccountId
और कोई भी मौजूदा analyticsPropertyId
, दोनों मिल सकते हैं.
projects.addGoogleAnalytics
को कॉल करने पर:
पहली जांच में यह तय किया जाता है कि Google Analytics प्रॉपर्टी की कोई मौजूदा डेटा स्ट्रीम, आपके
FirebaseProject
में मौजूद किसी मौजूदा Firebase ऐप्लिकेशन से मेल खाती है या नहीं. यह डेटा स्ट्रीम से जुड़ेpackageName
याbundleId
के आधार पर तय होता है. इसके बाद, डेटा स्ट्रीम और ऐप्लिकेशन को लिंक किया जाता है. ध्यान दें कि अपने-आप लिंक करने की यह सुविधा सिर्फ़ Android ऐप्लिकेशन और iOS ऐप्लिकेशन पर लागू होती है.अगर आपके 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
सही है और response
टाइप analyticsDetails
है. इसलिए, FirebaseProject
को अब बताए गए Google Analytics खाते से लिंक कर दिया गया है. पूरा होने के बाद, Operation
अपने-आप मिट जाता है.