Google 致力于为黑人社区推动种族平等。查看具体举措

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

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

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

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

यहां एक फीचर मैट्रिक्स है जो दिखा रहा है कि प्रत्येक भाषा में कौन सी फ़ायरबेस सुविधाएं समर्थित हैं:

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

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

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

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

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

    • व्यवस्थापक Node.js SDK — Node.js 10.13.0+
    • व्यवस्थापक जावा एसडीके - जावा 7+ (जावा 8+ की सिफारिश करें)
      जावा 7 समर्थन बहिष्कृत है।
    • एडमिन पायथन एसडीके - पायथन 3.6+
    • एडमिन गो एसडीके — गो 1.11+
    • एडमिन .NET SDK - .NET Framework 4.5+ या .Net Core 1.5+

Firebase प्रोजेक्ट और सेवा खाता सेट अप करें

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

  • एक फायरबेस प्रोजेक्ट
  • Firebase के साथ संचार करने के लिए एक सेवा खाता
  • आपके सेवा खाते के क्रेडेंशियल के साथ एक कॉन्फ़िगरेशन फ़ाइल

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

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

यदि आप कोई नया प्रोजेक्ट स्थापित कर रहे हैं, तो आपको अपनी पसंद की भाषा के लिए SDK इंस्टॉल करना होगा।

Node.js

Firebase Admin Node.js SDK npm पर उपलब्ध है। यदि आपके पास पहले से कोई package.json फ़ाइल नहीं है, तो npm init माध्यम से एक फ़ाइल बनाएँ। इसके बाद, firebase-admin npm पैकेज इंस्टॉल करें और इसे अपने 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.3.0'
}

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

<dependency>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-admin</artifactId>
  <version>7.3.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 पैकेज मैनेजर का उपयोग करके .NET व्यवस्थापक SDK को स्थापित किया जा सकता है:

$ Install-Package FirebaseAdmin -Version 2.2.0

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

$ dotnet add package FirebaseAdmin --version 2.2.0

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

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

एसडीके को इनिशियलाइज़ करें

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

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

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

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

  1. Firebase कंसोल में, सेटिंग > सेवा खाते खोलें.

  2. नई निजी कुंजी उत्पन्न करें पर क्लिक करें , फिर कुंजी उत्पन्न करें पर क्लिक करके पुष्टि करें

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

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

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

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

लिनक्स या macOS

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

खिड़कियाँ

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

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

उपरोक्त चरणों को पूरा करने के बाद, एप्लिकेशन डिफॉल्ट क्रेडेंशियल्स (एडीसी) आपके क्रेडेंशियल्स को स्पष्ट रूप से निर्धारित करने में सक्षम है, जिससे आप गैर-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

const 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 ऑब्जेक्ट के रूप में पार्स किया जाएगा। अन्यथा एसडीके मानता है कि स्ट्रिंग एक JSON फ़ाइल का पथ है जिसमें विकल्प हैं।

Node.js

const 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();

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

एकाधिक ऐप्स प्रारंभ करें

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

Node.js

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

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

// Retrieve services via the defaultApp variable...
let defaultAuth = defaultApp.auth();
let 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 the default app
var defaultApp = FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});
Console.WriteLine(defaultApp.Name); // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
var defaultAuth = FirebaseAuth.GetAuth(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.DefaultInstance;

कुछ उपयोग के मामलों में आपको एक ही समय में एकाधिक ऐप्स बनाने की आवश्यकता होती है। उदाहरण के लिए, हो सकता है कि आप एक 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
const defaultAuth = admin.auth();
const defaultDatabase = admin.database();

// Use the otherApp variable to retrieve the other app's services
const otherAuth = otherApp.auth();
const 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 और 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 सुविधाएं जोड़ें: