Google 致力于为黑人社区推动种族平等。查看具体举措
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

Firebase Admin SDK को अपने सर्वर में जोड़ें

एडमिन SDK सर्वर लाइब्रेरी का एक सेट है जो आपको विशेषाधिकार प्राप्त वातावरण से फायरबेस के साथ क्रिया करने की अनुमति देता है जैसे:

  • पूर्ण व्यवस्थापक विशेषाधिकारों के साथ रीयलटाइम डेटाबेस डेटा पढ़ें और लिखें।
  • प्रोग्रामबेस को फायरबेस क्लाउड मेसेजिंग सर्वर प्रोटोकॉल के लिए एक सरल, वैकल्पिक दृष्टिकोण का उपयोग करके फायरबेस क्लाउड मेसेजिंग संदेश भेजें।
  • जेनरेट करें और फायरबेस को टोकन को सत्यापित करें।
  • Google क्लाउड संसाधनों जैसे क्लाउड स्टोरेज बकेट और क्लाउड फायरस्टोर डेटाबेस तक पहुंचें जो आपके फायरबेस प्रोजेक्ट्स से जुड़े हैं।
  • उपयोगकर्ता डेटा देखने या प्रमाणीकरण के लिए उपयोगकर्ता के ईमेल पते को बदलने जैसे काम करने के लिए अपना सरलीकृत व्यवस्थापक कंसोल बनाएं।

यदि आप एंड-यूज़र एक्सेस के लिए एक क्लाइंट के रूप में Node.js SDK का उपयोग करने में रुचि रखते हैं (उदाहरण के लिए, Node.js डेस्कटॉप या IoT एप्लिकेशन में), तो एक विशेषाधिकार प्राप्त पर्यावरण (एक सर्वर की तरह) से व्यवस्थापक का विरोध करने के लिए, आप के रूप में इसके बजाय क्लाइंट जावास्क्रिप्ट एसडीके स्थापित करने के निर्देशों का पालन करना चाहिए।

यहाँ एक फीचर मैट्रिक्स दिखाया गया है, जिसमें प्रत्येक भाषा में फायरबेस विशेषताएँ समर्थित हैं:

फ़ीचर Node.js जावा अजगर जाओ सी#
कस्टम टोकन मिनिंग
आईडी टोकन सत्यापन
उपयोगकर्ता प्रबंधन
कस्टम दावों के साथ नियंत्रण पहुंच
टोकन निरस्तीकरण को ताज़ा करें
उपयोगकर्ताओं को आयात करें
सत्र कुकी प्रबंधन
ईमेल लड़ाई लिंक उत्पन्न करना
SAML / OIDC प्रदाता कॉन्फ़िगरेशन का प्रबंधन
मल्टी-टेनेंसी सपोर्ट
रियलटाइम डेटाबेस *
फायरबेस क्लाउड मेसेजिंग
एफसीएम मल्टीकास्ट
FCM विषय सदस्यता प्रबंधित करें
बादल भंडारण
क्लाउड फायरस्टार
परियोजना प्रबंधन
सुरक्षा नियम
एमएल मॉडल प्रबंधन
Firebase Remote Config

इन उपयोगों के लिए व्यवस्थापक SDK एकीकरण के बारे में अधिक जानने के लिए, संबंधित रीयलटाइम डेटाबेस , FCM , प्रमाणीकरण , दूरस्थ कॉन्फ़िगरेशन और क्लाउड पाइपलाइन दस्तावेज़ देखें। इस पृष्ठ के शेष भाग को SDK के लिए मूल सेटअप पर केंद्रित है।

आवश्यक शर्तें

  • सुनिश्चित करें कि आपके पास एक सर्वर ऐप है।

  • सुनिश्चित करें कि आपका सर्वर निम्न का उपयोग करता है जिसके आधार पर SDK जो आप उपयोग करते हैं:

    • व्यवस्थापन Node.js SDK - Node.js 10.10.0+
    • व्यवस्थापक जावा एसडीके - जावा 7+ (जावा 8+ की सिफारिश करें)
      जावा 7 सपोर्ट को पदावनत किया गया है।
    • व्यवस्थापक पायथन एसडीके - पायथन 3.6+
    • एडमिन गो एसडीके - गो १.११+
    • व्यवस्थापक .NET SDK - .NET फ्रेमवर्क 4.5+ या .Net कोर 1.5+

फायरबेस परियोजना और सेवा खाता स्थापित करें

फायरबेस व्यवस्थापक एसडीके का उपयोग करने के लिए, आपको निम्नलिखित की आवश्यकता होगी:

  • एक फायरबेस परियोजना
  • फायरबेस के साथ संवाद करने के लिए एक सेवा खाता
  • आपके सेवा खाते की साख के साथ एक विन्यास फाइल

यदि आपके पास पहले से फायरबेस प्रोजेक्ट नहीं है, तो आपको फायरबेस कंसोल में एक बनाने की आवश्यकता है। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए फायरबेस प्रोजेक्ट्स पर जाएं।

एसडीके जोड़ें

यदि आप एक नई परियोजना स्थापित कर रहे हैं, तो आपको अपनी पसंद की भाषा के लिए एसडीके स्थापित करने की आवश्यकता है।

Node.js

Firebase Admin Node.js SDK npm पर उपलब्ध है। यदि आपके पास पहले से कोई package.json फ़ाइल नहीं है, तो npm init माध्यम से एक बनाएँ। अगला, firebase-admin एनपीएम पैकेज स्थापित करें और इसे अपने package.json सहेजें package.json :

$ npm install firebase-admin --save

अपने एप्लिकेशन में मॉड्यूल का उपयोग करने के लिए, उसे किसी भी जावास्क्रिप्ट फ़ाइल से require है:

var admin = require('firebase-admin');

यदि आप ES2015 का उपयोग कर रहे हैं, तो आप इसके बजाय मॉड्यूल import कर सकते import :

import * as admin from 'firebase-admin';

जावा

फायरबेस व्यवस्थापक जावा एसडीके मावेन केंद्रीय भंडार में प्रकाशित होता है। लाइब्रेरी स्थापित करने के लिए, इसे अपनी build.gradle फ़ाइल में निर्भरता के रूप में घोषित करें:

dependencies {
  implementation 'com.google.firebase:firebase-admin:7.2.0'
}

यदि आप अपने आवेदन के निर्माण के लिए मावेन का उपयोग करते हैं, तो आप अपने pom.xml निम्न निर्भरता जोड़ सकते हैं:

<dependency>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-admin</artifactId>
  <version>7.2.0</version>
</dependency>

अजगर

फायरबेस व्यवस्थापक पायथन एसडीके पाइप के माध्यम से उपलब्ध है। आप sudo माध्यम से सभी उपयोगकर्ताओं के लिए पुस्तकालय स्थापित कर सकते हैं:

$ sudo pip install firebase-admin

या, आप --user ध्वज को पास करके सिर्फ वर्तमान उपयोगकर्ता के लिए पुस्तकालय स्थापित कर सकते हैं:

$ pip install --user firebase-admin

जाओ

जाओ नियंत्रक SDK का उपयोग कर स्थापित किया जा सकता go get उपयोगिता:

# Install as a module dependency
$ go get firebase.google.com/go/v4

# Install to $GOPATH
$ go get firebase.google.com/go

सी#

.NET व्यवस्थापक SDK को .NET पैकेज मैनेजर का उपयोग करके स्थापित किया जा सकता है:

$ Install-Package FirebaseAdmin -Version 2.1.0

वैकल्पिक रूप से, dotnet कमांड-लाइन उपयोगिता का उपयोग करके इसे स्थापित करें:

$ dotnet add package FirebaseAdmin --version 2.1.0

या, आप अपनी .csproj फ़ाइल में निम्न पैकेज संदर्भ प्रविष्टि जोड़कर इसे स्थापित कर सकते हैं:

<ItemGroup>
  <PackageReference Include="FirebaseAdmin" Version="2.1.0" />
</ItemGroup>

एसडीके को प्रारंभ करें

एक बार जब आप फायरबेस परियोजना बना लेते हैं, तो आप एसडीके को एक प्राधिकरण रणनीति के साथ आरंभ कर सकते हैं जो आपकी सेवा खाता फ़ाइल को Google अनुप्रयोग डिफ़ॉल्ट क्रेडेंशियल के साथ जोड़ती है।

फायरबेस परियोजनाएं Google सेवा खातों का समर्थन करती हैं , जिनका उपयोग आप अपने ऐप सर्वर या विश्वसनीय वातावरण से फायरबेस सर्वर एपीआई को कॉल करने के लिए कर सकते हैं। यदि आप स्थानीय रूप से कोड विकसित कर रहे हैं या अपने आवेदन को परिसर में तैनात कर रहे हैं, तो आप सर्वर अनुरोधों को अधिकृत करने के लिए इस सेवा खाते के माध्यम से प्राप्त क्रेडेंशियल्स का उपयोग कर सकते हैं।

एक सेवा खाते को प्रमाणित करने और फायरबेस सेवाओं तक पहुंचने के लिए इसे अधिकृत करने के लिए, आपको JSON प्रारूप में एक निजी कुंजी फ़ाइल बनानी होगी।

अपने सेवा खाते के लिए एक निजी कुंजी फ़ाइल बनाने के लिए:

  1. फायरबेस कंसोल में, सेटिंग्स> सेवा खाते खोलें।

  2. Generate New Private Key पर क्लिक करें , फिर Generate Key पर क्लिक करके पुष्टि करें

  3. JSON फ़ाइल को कुंजी से सुरक्षित रूप से संग्रहीत करें।

एक सेवा खाते के माध्यम से अधिकृत करते समय, आपके पास अपने आवेदन को प्रमाणिकता प्रदान करने के लिए दो विकल्प होते हैं। आप या तो GOOGLE_APPLICATION_CREDENTIALS पर्यावरण चर सेट कर सकते हैं, या आप कोड में सेवा खाता कुंजी के लिए पथ को स्पष्ट रूप से पारित कर सकते हैं। पहला विकल्प अधिक सुरक्षित है और दृढ़ता से अनुशंसित है।

पर्यावरण चर सेट करने के लिए:

JSON फ़ाइल के फ़ाइल पथ में वातावरण चर GOOGLE_APPLICATION_CREDENTIALS सेट करें जिसमें आपका खाता खाता कुंजी हो। यह चर केवल आपके वर्तमान शेल सत्र पर लागू होता है, इसलिए यदि आप एक नया सत्र खोलते हैं, तो चर को फिर से सेट करें।

लिनक्स या macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

खिड़कियाँ

पॉवरशेल के साथ:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

उपरोक्त चरणों को पूरा करने के बाद, एप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल (ADC) आपके क्रेडेंशियल्स को स्पष्ट रूप से निर्धारित करने में सक्षम है, जिससे आप गैर-Google वातावरण में परीक्षण या चलाने के दौरान सेवा खाता क्रेडेंशियल्स का उपयोग कर सकते हैं।

एसडीके को प्रारंभिक रूप में दिखाया गया है:

Node.js

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

जावा

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

अजगर

default_app = firebase_admin.initialize_app()

जाओ

app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

सी#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});

OAuth 2.0 रिफ्रेश टोकन का उपयोग करना

व्यवस्थापक SDK एक क्रेडेंशियल भी प्रदान करता है जो आपको Google OAuth2 ताज़ा टोकन के साथ प्रमाणित करने की अनुमति देता है:

Node.js

var refreshToken; // Get refresh token from OAuth2 flow

admin.initializeApp({
  credential: admin.credential.refreshToken(refreshToken),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
है

जावा

FileInputStream refreshToken = new FileInputStream("path/to/refreshToken.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(refreshToken))
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

अजगर

cred = credentials.RefreshToken('path/to/refreshToken.json')
default_app = firebase_admin.initialize_app(cred)

जाओ

opt := option.WithCredentialsFile("path/to/refreshToken.json")
config := &firebase.Config{ProjectID: "my-project-id"}
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

सी#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.FromFile("path/to/refreshToken.json"),
});

मापदंडों के बिना प्रारंभिक

एसडीके को बिना किसी पैरामीटर के साथ आरंभ किया जा सकता है। इस स्थिति में, SDK Google अनुप्रयोग डिफ़ॉल्ट क्रेडेंशियल का उपयोग करता है। चूंकि डिफ़ॉल्ट क्रेडेंशियल लुकअप Google वातावरण में पूरी तरह से स्वचालित है, इसलिए पर्यावरण चर या अन्य कॉन्फ़िगरेशन की आपूर्ति करने की आवश्यकता नहीं है, एसडीके को सूचित करने का यह तरीका कम्प्यूट इंजन, कुबेरनेट इंजन, ऐप इंजन और क्लाउड फ़ंक्शंस पर चलने वाले अनुप्रयोगों के लिए दृढ़ता से अनुशंसित है।

रीयलटाइम डेटाबेस, क्लाउड स्टोरेज या क्लाउड फ़ंक्शंस जैसी सेवाओं के लिए वैकल्पिक रूप से वैकल्पिक विकल्प निर्दिष्ट करने के लिए, FIREBASE_CONFIG पर्यावरण चर का उपयोग करें। यदि FIREBASE_CONFIG चर की सामग्री एक { शुरू होती है, तो इसे JSON ऑब्जेक्ट के रूप में पार्स किया जाएगा। अन्यथा SDK मानता है कि स्ट्रिंग JSON फ़ाइल का पथ है जिसमें विकल्प हैं।

Node.js

// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp();

जावा

FirebaseApp.initializeApp();

अजगर

default_app = firebase_admin.initialize_app()

जाओ

app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

सी#

FirebaseApp.Create();

एक बार इसे शुरू करने के बाद, आप निम्न प्रकार के कार्यों को पूरा करने के लिए एडमिन SDK का उपयोग कर सकते हैं:

कई ऐप्स को इनिशियलाइज़ करें

ज्यादातर मामलों में, आपको केवल एकल, डिफ़ॉल्ट ऐप को इनिशियलाइज़ करना होगा। आप दो समान तरीकों से उस ऐप की सेवाओं तक पहुँच सकते हैं:

Node.js

// Initialize the default app
var defaultApp = admin.initializeApp(defaultAppConfig);

console.log(defaultApp.name);  // '[DEFAULT]'

// Retrieve services via the defaultApp variable...
var defaultAuth = defaultApp.auth();
var defaultDatabase = defaultApp.database();

// ... or use the equivalent shorthand notation
defaultAuth = admin.auth();
defaultDatabase = admin.database();

जावा

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

System.out.println(defaultApp.getName());  // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
FirebaseAuth defaultAuth = FirebaseAuth.getInstance(defaultApp);
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.getInstance();
defaultDatabase = FirebaseDatabase.getInstance();
है

अजगर

# Import the Firebase service
from firebase_admin import auth

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)
print(default_app.name)  # "[DEFAULT]"

# Retrieve services via the auth package...
# auth.create_custom_token(...)

जाओ

// Initialize default app
app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access auth service from the default app
client, err := app.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

सी#

0bd66a6d70

कुछ उपयोग मामलों में आपको एक ही समय में कई एप्लिकेशन बनाने की आवश्यकता होती है। उदाहरण के लिए, आप एक Firebase प्रोजेक्ट के रीयलटाइम डेटाबेस और किसी अन्य प्रोजेक्ट के लिए टकसाल कस्टम टोकन से डेटा पढ़ना चाह सकते हैं। या आप अलग-अलग क्रेडेंशियल्स वाले दो ऐप्स को प्रमाणित करना चाह सकते हैं। फायरबेस एसडीके आपको एक ही समय में कई एप्लिकेशन बनाने की अनुमति देता है, प्रत्येक अपनी कॉन्फ़िगरेशन जानकारी के साथ।

Node.js

// Initialize the default app
admin.initializeApp(defaultAppConfig);

// Initialize another app with a different config
var otherApp = admin.initializeApp(otherAppConfig, 'other');

console.log(admin.app().name);  // '[DEFAULT]'
console.log(otherApp.name);     // 'other'

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = admin.auth();
var defaultDatabase = admin.database();

// Use the otherApp variable to retrieve the other app's services
var otherAuth = otherApp.auth();
var otherDatabase = otherApp.database();
है

जावा

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

// Initialize another app with a different config
FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other");

System.out.println(defaultApp.getName());  // "[DEFAULT]"
System.out.println(otherApp.getName());    // "other"

// Use the shorthand notation to retrieve the default app's services
FirebaseAuth defaultAuth = FirebaseAuth.getInstance();
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance();

// Use the otherApp variable to retrieve the other app's services
FirebaseAuth otherAuth = FirebaseAuth.getInstance(otherApp);
FirebaseDatabase otherDatabase = FirebaseDatabase.getInstance(otherApp);

अजगर

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)

#  Initialize another app with a different config
other_app = firebase_admin.initialize_app(cred, name='other')

print(default_app.name)    # "[DEFAULT]"
print(other_app.name)      # "other"

# Retrieve default services via the auth package...
# auth.create_custom_token(...)

# Use the `app` argument to retrieve the other app's services
# auth.create_custom_token(..., app=other_app)

जाओ

// Initialize the default app
defaultApp, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Initialize another app with a different config
opt := option.WithCredentialsFile("service-account-other.json")
otherApp, err := firebase.NewApp(context.Background(), nil, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access Auth service from default app
defaultClient, err := defaultApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

// Access auth service from other app
otherClient, err := otherApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

सी#

// Initialize the default app
var defaultApp = FirebaseApp.Create(defaultOptions);

// Initialize another app with a different config
var otherApp = FirebaseApp.Create(otherAppConfig, "other");

Console.WriteLine(defaultApp.Name); // "[DEFAULT]"
Console.WriteLine(otherApp.Name); // "other"

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = FirebaseAuth.DefaultInstance;

// Use the otherApp variable to retrieve the other app's services
var otherAuth = FirebaseAuth.GetAuth(otherApp);

रीयलटाइम डेटाबेस और प्रमाणीकरण के लिए स्कोप सेट करें

यदि आप रियल टाइम डेटाबेस या ऑथेंटिकेशन के लिए Google एप्लिकेशन डिफॉल्ट क्रेडेंशियल्स के साथ Google कंप्यूट इंजन VM का उपयोग कर रहे हैं, तो सुनिश्चित करें कि सही एक्सेस स्कोप भी सेट करें। रीयलटाइम डेटाबेस और ऑथेंटिकेशन के लिए, आपको userinfo.email में समाप्त होने वाले userinfo.email आवश्यकता होती है और या तो cloud-platform या firebase.database । मौजूदा एक्सेस स्कोप की जांच करने और उन्हें बदलने के लिए, gcloud का उपयोग करके निम्न कमांड चलाएं

Gcloud

# Check the existing access scopes
gcloud compute instances describe [INSTANCE_NAME] --format json

# The above command returns the service account information. For example:
  "serviceAccounts": [
   {
    "email": "your.gserviceaccount.com",
    "scopes": [
     "https://www.googleapis.com/auth/cloud-platform",
     "https://www.googleapis.com/auth/userinfo.email"
     ]
    }
  ],

# Stop the VM, then run the following command, using the service account
# that gcloud returned when you checked the scopes.

gcloud compute instances set-service-account [INSTANCE_NAME] --service-account "your.gserviceaccount.com" --scopes "https://www.googleapis.com/auth/firebase.database,https://www.googleapis.com/auth/userinfo.email"

अगला कदम

Firebase के बारे में जानें:

अपने ऐप में Firebase फीचर जोड़ें: