Admin SDK হল সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধাপ্রাপ্ত পরিবেশ থেকে ফায়ারবেসের সাথে ইন্টারঅ্যাক্ট করতে দেয় যেমন:
- বাল্ক ডেটা ম্যানেজমেন্ট এবং সম্পূর্ণ অ্যাডমিন সুবিধা সহ অন্যান্য ক্রিয়াকলাপগুলির জন্য একটি Firebase Data Connect পরিষেবাতে প্রশ্ন এবং মিউটেশনগুলি সম্পাদন করুন৷
- সম্পূর্ণ অ্যাডমিন সুবিধা সহ Realtime Database ডেটা পড়ুন এবং লিখুন।
- Firebase Cloud Messaging সার্ভার প্রোটোকলের জন্য একটি সহজ, বিকল্প পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিকভাবে Firebase Cloud Messaging বার্তা পাঠান।
- ফায়ারবেস প্রমাণীকরণ টোকেন তৈরি এবং যাচাই করুন।
- আপনার ফায়ারবেস প্রকল্পগুলির সাথে যুক্ত Cloud Storage বাকেট এবং Cloud Firestore ডেটাবেসের মতো Google Cloud সংস্থানগুলি অ্যাক্সেস করুন৷
- ব্যবহারকারীর ডেটা খোঁজা বা প্রমাণীকরণের জন্য ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তন করার মতো জিনিসগুলি করতে আপনার নিজস্ব সরলীকৃত অ্যাডমিন কনসোল তৈরি করুন৷
আপনি যদি Node.js SDK-কে শেষ-ব্যবহারকারী অ্যাক্সেসের জন্য ক্লায়েন্ট হিসাবে ব্যবহার করতে আগ্রহী হন (উদাহরণস্বরূপ, একটি Node.js ডেস্কটপ বা IoT অ্যাপ্লিকেশনে), একটি বিশেষ সুবিধাপ্রাপ্ত পরিবেশ (যেমন একটি সার্ভারের মতো) থেকে অ্যাডমিন অ্যাক্সেসের বিপরীতে, আপনি পরিবর্তে ক্লায়েন্ট JavaScript SDK সেট আপ করার জন্য নির্দেশাবলী অনুসরণ করা উচিত।
এখানে একটি বৈশিষ্ট্য ম্যাট্রিক্স রয়েছে যা দেখায় যে ফায়ারবেস বৈশিষ্ট্যগুলি প্রতিটি ভাষায় সমর্থিত:
এই ব্যবহারের জন্য Admin SDK ইন্টিগ্রেশন সম্পর্কে আরও জানতে, সংশ্লিষ্ট Realtime Database , FCM , Authentication , Remote Config , এবং Cloud Storage ডকুমেন্টেশন দেখুন৷ এই পৃষ্ঠার বাকি অংশ Admin SDK জন্য মৌলিক সেটআপের উপর ফোকাস করে।
পূর্বশর্ত
আপনার একটি সার্ভার অ্যাপ্লিকেশন আছে তা নিশ্চিত করুন.
আপনি কোন Admin SDK ব্যবহার করেন তার উপর নির্ভর করে আপনার সার্ভার নিম্নলিখিতগুলি চালায় তা নিশ্চিত করুন:
- অ্যাডমিন Node.js SDK — Node.js 14+ (Node.js 18+ সুপারিশ করুন)
Node.js 14 এবং 16 সমর্থন বাতিল করা হয়েছে। - অ্যাডমিন জাভা SDK — Java 8+
- অ্যাডমিন পাইথন SDK — পাইথন 3.7+ (পাইথন 3.8+ সুপারিশ করুন)
Python 3.7 সমর্থন বন্ধ করা হয়েছে। - অ্যাডমিন Go SDK — Go 1.20+
- অ্যাডমিন .NET SDK — .NET ফ্রেমওয়ার্ক 4.6.2+ বা .NET 6.0+ এর জন্য .NET স্ট্যান্ডার্ড 2.0
- অ্যাডমিন Node.js SDK — Node.js 14+ (Node.js 18+ সুপারিশ করুন)
একটি Firebase প্রকল্প এবং পরিষেবা অ্যাকাউন্ট সেট আপ করুন৷
Firebase Admin SDK ব্যবহার করতে, আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:
- একটি ফায়ারবেস প্রকল্প।
- Firebase এর সাথে যোগাযোগ করার জন্য একটি Firebase অ্যাডমিন SDK পরিষেবা অ্যাকাউন্ট। আপনি যখন একটি Firebase প্রকল্প তৈরি করেন বা Google ক্লাউড প্রকল্পে Firebase যোগ করেন তখন এই পরিষেবা অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়৷
- আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্র সহ একটি কনফিগারেশন ফাইল।
আপনার যদি আগে থেকেই একটি Firebase প্রকল্প না থাকে, তাহলে আপনাকে Firebase কনসোলে একটি তৈরি করতে হবে। Firebase প্রকল্পগুলি সম্পর্কে আরও জানতে Firebase প্রকল্পগুলি বুঝতে দেখুন৷
SDK যোগ করুন
আপনি যদি একটি নতুন প্রকল্প সেট আপ করছেন, তাহলে আপনার পছন্দের ভাষার জন্য আপনাকে SDK ইনস্টল করতে হবে৷
Node.js
Firebase Admin Node.js SDK npm-এ উপলব্ধ। আপনার যদি ইতিমধ্যে একটি package.json
ফাইল না থাকে, তাহলে npm init
মাধ্যমে একটি তৈরি করুন। এরপর, firebase-admin
এনপিএম প্যাকেজটি ইনস্টল করুন এবং এটিকে আপনার package.json
এ সংরক্ষণ করুন :
npm install firebase-admin --save
আপনার অ্যাপ্লিকেশনে মডিউলটি ব্যবহার করতে, যেকোনো জাভাস্ক্রিপ্ট ফাইল থেকে এটি require
:
const { initializeApp } = require('firebase-admin/app');
আপনি যদি ES2015 ব্যবহার করেন তবে আপনি মডিউলটি import
করতে পারেন:
import { initializeApp } from 'firebase-admin/app';
জাভা
ফায়ারবেস অ্যাডমিন জাভা SDK Maven কেন্দ্রীয় সংগ্রহস্থলে প্রকাশিত হয়েছে। লাইব্রেরি ইনস্টল করতে, এটিকে আপনার build.gradle
ফাইলে নির্ভরতা হিসাবে ঘোষণা করুন:
dependencies {
implementation 'com.google.firebase:firebase-admin:9.4.1'
}
আপনি আপনার অ্যাপ্লিকেশন তৈরি করতে Maven ব্যবহার করলে, আপনি আপনার pom.xml
এ নিম্নলিখিত নির্ভরতা যোগ করতে পারেন:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>9.4.1</version>
</dependency>
পাইথন
Firebase Admin Python SDK পাইপ এর মাধ্যমে উপলব্ধ। আপনি sudo
মাধ্যমে সমস্ত ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারেন:
sudo pip install firebase-admin
অথবা, আপনি --user
পতাকা পাস করে শুধুমাত্র বর্তমান ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারেন:
pip install --user firebase-admin
যাও
Go Admin SDK go get
ইউটিলিটি ব্যবহার করে ইনস্টল করা যেতে পারে:
# Install the latest version:
go get firebase.google.com/go/v4@latest
# Or install a specific version:
go get firebase.google.com/go/v4@4.14.1
সি#
.NET প্যাকেজ ম্যানেজার ব্যবহার করে .NET Admin SDK ইনস্টল করা যেতে পারে:
Install-Package FirebaseAdmin -Version 3.0.1
বিকল্পভাবে, dotnet
কমান্ড-লাইন ইউটিলিটি ব্যবহার করে এটি ইনস্টল করুন:
dotnet add package FirebaseAdmin --version 3.0.1
অথবা, আপনি আপনার .csproj
ফাইলে নিম্নলিখিত প্যাকেজ রেফারেন্স এন্ট্রি যোগ করে এটি ইনস্টল করতে পারেন:
<ItemGroup>
<PackageReference Include="FirebaseAdmin" Version="3.0.1" />
</ItemGroup>
SDK আরম্ভ করুন
একবার আপনি একটি ফায়ারবেস প্রকল্প তৈরি করলে, আপনি Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে SDK শুরু করতে পারেন। যেহেতু ডিফল্ট শংসাপত্রের সন্ধান Google পরিবেশে সম্পূর্ণরূপে স্বয়ংক্রিয়, পরিবেশের ভেরিয়েবল বা অন্যান্য কনফিগারেশন সরবরাহ করার প্রয়োজন নেই, তাই SDK শুরু করার এই পদ্ধতিটি ক্লাউড রান, অ্যাপ ইঞ্জিন এবং ক্লাউড ফাংশনগুলির মতো Google পরিবেশে চলমান অ্যাপ্লিকেশনগুলির জন্য দৃঢ়ভাবে সুপারিশ করা হয়৷
Realtime Database , Cloud Storage , বা Cloud Functions মতো পরিষেবাগুলির জন্য ঐচ্ছিকভাবে শুরু করার বিকল্পগুলি নির্দিষ্ট করতে, FIREBASE_CONFIG
পরিবেশ পরিবর্তনশীল ব্যবহার করুন৷ যদি FIREBASE_CONFIG
ভেরিয়েবলের বিষয়বস্তু একটি {
দিয়ে শুরু হয় তবে এটি JSON অবজেক্ট হিসাবে পার্স করা হবে। অন্যথায় SDK অনুমান করে যে স্ট্রিং হল একটি JSON ফাইলের পথ যেখানে বিকল্পগুলি রয়েছে৷
Node.js
const app = 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();
একবার এটি আরম্ভ হয়ে গেলে, আপনি নিম্নলিখিত ধরনের কাজগুলি সম্পন্ন করতে Admin SDK ব্যবহার করতে পারেন:
- কাস্টম প্রমাণীকরণ প্রয়োগ করুন
- আপনার Firebase Authentication ব্যবহারকারীদের পরিচালনা করুন
- Firebase Data Connect পরিষেবায় প্রশাসনিক প্রশ্ন এবং মিউটেশনগুলি সম্পাদন করুন ৷
- Realtime Database থেকে ডেটা পড়ুন এবং লিখুন
- Firebase Cloud Messaging বার্তা পাঠান
একটি OAuth 2.0 রিফ্রেশ টোকেন ব্যবহার করে৷
Admin SDK একটি শংসাপত্রও প্রদান করে যা আপনাকে Google OAuth2 রিফ্রেশ টোকেন দিয়ে প্রমাণীকরণ করতে দেয়:
Node.js
const myRefreshToken = '...'; // Get refresh token from OAuth2 flow
initializeApp({
credential: refreshToken(myRefreshToken),
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"),
});
নন-Google পরিবেশে SDK চালু করুন
আপনি যদি একটি নন-Google সার্ভার পরিবেশে কাজ করেন যেখানে ডিফল্ট শংসাপত্রের সন্ধান সম্পূর্ণরূপে স্বয়ংক্রিয় হতে পারে না, আপনি একটি রপ্তানি করা পরিষেবা অ্যাকাউন্ট কী ফাইলের সাথে SDK শুরু করতে পারেন৷
Firebase প্রকল্পগুলি Google পরিষেবা অ্যাকাউন্টগুলিকে সমর্থন করে, যা আপনি আপনার অ্যাপ সার্ভার বা বিশ্বস্ত পরিবেশ থেকে Firebase সার্ভার API কল করতে ব্যবহার করতে পারেন৷ আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করছেন বা আপনার অ্যাপ্লিকেশনটি প্রাঙ্গনে স্থাপন করছেন, আপনি সার্ভার অনুরোধ অনুমোদন করতে এই পরিষেবা অ্যাকাউন্টের মাধ্যমে প্রাপ্ত শংসাপত্রগুলি ব্যবহার করতে পারেন৷
একটি পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ করতে এবং এটিকে Firebase পরিষেবাগুলি অ্যাক্সেস করার অনুমোদন দিতে, আপনাকে অবশ্যই JSON ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে৷
আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:
Firebase কনসোলে, সেটিংস > পরিষেবা অ্যাকাউন্ট খুলুন।
জেনারেট নিউ প্রাইভেট কী ক্লিক করুন, তারপর জেনারেট কী ক্লিক করে নিশ্চিত করুন।
কী আছে এমন JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।
একটি পরিষেবা অ্যাকাউন্টের মাধ্যমে অনুমোদন করার সময়, আপনার আবেদনে শংসাপত্রগুলি প্রদান করার জন্য আপনার কাছে দুটি বিকল্প রয়েছে৷ আপনি হয় GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন, অথবা আপনি কোডে পরিষেবা অ্যাকাউন্ট কী-এর পথটি স্পষ্টভাবে পাস করতে পারেন৷ প্রথম বিকল্পটি আরো নিরাপদ এবং দৃঢ়ভাবে সুপারিশ করা হয়।
পরিবেশ পরিবর্তনশীল সেট করতে:
এনভায়রনমেন্ট ভেরিয়েবল GOOGLE_APPLICATION_CREDENTIALS JSON ফাইলের ফাইল পাথে সেট করুন যাতে আপনার পরিষেবা অ্যাকাউন্ট কী রয়েছে। এই ভেরিয়েবলটি শুধুমাত্র আপনার বর্তমান শেল সেশনে প্রযোজ্য, তাই আপনি যদি একটি নতুন সেশন খোলেন, তাহলে ভেরিয়েবলটি আবার সেট করুন।
লিনাক্স বা ম্যাকোস
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
উইন্ডোজ
PowerShell এর সাথে:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
আপনি উপরের ধাপগুলি সম্পন্ন করার পরে, অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) আপনার প্রমাণপত্রগুলিকে স্পষ্টভাবে নির্ধারণ করতে সক্ষম হয়, যা আপনাকে নন-Google পরিবেশে পরীক্ষা বা চালানোর সময় পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করার অনুমতি দেয়।
দেখানো হিসাবে SDK শুরু করুন:
Node.js
initializeApp({
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(),
ProjectId = "my-project-id",
});
একাধিক অ্যাপ চালু করুন
বেশিরভাগ ক্ষেত্রে, আপনাকে শুধুমাত্র একটি একক, ডিফল্ট অ্যাপ শুরু করতে হবে। আপনি দুটি সমতুল্য উপায়ে সেই অ্যাপের পরিষেবাগুলি অ্যাক্সেস করতে পারেন:
Node.js
// Initialize the default app
const defaultApp = initializeApp(defaultAppConfig);
console.log(defaultApp.name); // '[DEFAULT]'
// Retrieve services via the defaultApp variable...
let defaultAuth = getAuth(defaultApp);
let defaultDatabase = getDatabase(defaultApp);
// ... or use the equivalent shorthand notation
defaultAuth = getAuth();
defaultDatabase = getDatabase();
জাভা
// 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)
}
সি#
// 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;
কিছু ব্যবহারের ক্ষেত্রে আপনাকে একই সময়ে একাধিক অ্যাপ তৈরি করতে হবে। উদাহরণস্বরূপ, আপনি একটি ফায়ারবেস প্রকল্পের Realtime Database থেকে ডেটা পড়তে এবং অন্য প্রকল্পের জন্য কাস্টম টোকেন পড়তে চাইতে পারেন। অথবা আপনি পৃথক শংসাপত্র সহ দুটি অ্যাপ প্রমাণীকরণ করতে চাইতে পারেন। Firebase SDK আপনাকে একই সময়ে একাধিক অ্যাপ তৈরি করতে দেয়, প্রতিটির নিজস্ব কনফিগারেশন তথ্য সহ।
Node.js
// Initialize the default app
initializeApp(defaultAppConfig);
// Initialize another app with a different config
var otherApp = initializeApp(otherAppConfig, 'other');
console.log(getApp().name); // '[DEFAULT]'
console.log(otherApp.name); // 'other'
// Use the shorthand notation to retrieve the default app's services
const defaultAuth = getAuth();
const defaultDatabase = getDatabase();
// Use the otherApp variable to retrieve the other app's services
const otherAuth = getAuth(otherApp);
const otherDatabase = getDatabase(otherApp);
জাভা
// 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);
Realtime Database এবং Authentication জন্য স্কোপ সেট করুন
আপনি যদি Realtime Database বা Authentication জন্য Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র সহ একটি Google Compute Engine VM ব্যবহার করেন, তাহলে সঠিক অ্যাক্সেসের সুযোগগুলিও সেট করতে ভুলবেন না। Realtime Database এবং Authentication জন্য, আপনার userinfo.email
এবং cloud-platform
বা firebase.database
এ শেষ হওয়া স্কোপের প্রয়োজন। বিদ্যমান অ্যাক্সেস স্কোপগুলি পরীক্ষা করতে এবং তাদের পরিবর্তন করতে, 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"
জিক্লাউড শেষ ব্যবহারকারীর শংসাপত্রের সাথে পরীক্ষা করা হচ্ছে
gcloud auth application-default login
চালানোর মাধ্যমে প্রাপ্ত Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে স্থানীয়ভাবে Admin SDK পরীক্ষা করার সময়, নিম্নলিখিত কারণে Firebase Authentication ব্যবহার করার জন্য অতিরিক্ত পরিবর্তন প্রয়োজন:
- Firebase Authentication gcloud OAuth ক্লায়েন্ট আইডি ব্যবহার করে তৈরি করা gcloud শেষ ব্যবহারকারীর শংসাপত্র গ্রহণ করে না।
- Firebase Authentication এই ধরনের শেষ ব্যবহারকারীর শংসাপত্রের জন্য প্রাথমিককরণের সময় প্রজেক্ট আইডি প্রদান করতে হবে।
একটি সমাধান হিসাবে, আপনি আপনার নিজস্ব OAuth 2.0 ক্লায়েন্ট আইডি ব্যবহার করে gcloud- এ Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র তৈরি করতে পারেন। OAuth ক্লায়েন্ট আইডি একটি ডেস্কটপ অ্যাপ অ্যাপ্লিকেশন প্রকার হতে হবে।
জিক্লাউড
gcloud auth application-default login --client-id-file=[/path/to/client/id/file]
আপনি অ্যাপ ইনিশিয়ালাইজেশনে প্রজেক্ট আইডি স্পষ্টভাবে উল্লেখ করতে পারেন অথবা শুধুমাত্র GOOGLE_CLOUD_PROJECT
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে পারেন। পরেরটি আপনার কোড পরীক্ষা করার জন্য কোনো অতিরিক্ত পরিবর্তন করার প্রয়োজন এড়ায়।
স্পষ্টভাবে প্রকল্প আইডি নির্দিষ্ট করতে:
Node.js
import { initializeApp, applicationDefault } from 'firebase-admin/app';
initializeApp({
credential: applicationDefault(),
projectId: '<FIREBASE_PROJECT_ID>',
});
জাভা
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.getApplicationDefault())
.setProjectId("<FIREBASE_PROJECT_ID>")
.build();
FirebaseApp.initializeApp(options);
পাইথন
app_options = {'projectId': '<FIREBASE_PROJECT_ID>'}
default_app = firebase_admin.initialize_app(options=app_options)
যাও
config := &firebase.Config{ProjectID: "<FIREBASE_PROJECT_ID>"}
app, err := firebase.NewApp(context.Background(), config)
if err != nil {
log.Fatalf("error initializing app: %v\n", err)
}
সি#
FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.GetApplicationDefault(),
ProjectId = "<FIREBASE_PROJECT_ID>",
});
পরবর্তী পদক্ষেপ
ফায়ারবেস সম্পর্কে জানুন:
ফায়ারবেস অ্যাপের নমুনা অন্বেষণ করুন।
Node.js , Java , এবং Python-এর জন্য GitHub-এ ওপেন সোর্স কোড অন্বেষণ করুন।
Admin SDK সম্পর্কিত ব্লগ পোস্ট পড়ুন Admin SDK এর একজন নির্মাতার। উদাহরণস্বরূপ: একটি প্রক্সি সার্ভারের মাধ্যমে Firestore এবং Firebase অ্যাক্সেস করা ।
আপনার অ্যাপে Firebase বৈশিষ্ট্য যোগ করুন:
- Cloud Functions সহ একটি সার্ভারহীন ব্যাকএন্ড লিখুন।
- Cloud Storage সহ Realtime Database বা ব্লব ডেটা সহ তথ্য সংরক্ষণ করুন।
- Cloud Messaging মাধ্যমে বিজ্ঞপ্তি পান।
Admin SDK হল সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধাপ্রাপ্ত পরিবেশ থেকে ফায়ারবেসের সাথে ইন্টারঅ্যাক্ট করতে দেয় যেমন:
- বাল্ক ডেটা ম্যানেজমেন্ট এবং সম্পূর্ণ অ্যাডমিন সুবিধা সহ অন্যান্য ক্রিয়াকলাপগুলির জন্য একটি Firebase Data Connect পরিষেবাতে প্রশ্ন এবং মিউটেশনগুলি সম্পাদন করুন৷
- সম্পূর্ণ অ্যাডমিন সুবিধা সহ Realtime Database ডেটা পড়ুন এবং লিখুন।
- Firebase Cloud Messaging সার্ভার প্রোটোকলের জন্য একটি সহজ, বিকল্প পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিকভাবে Firebase Cloud Messaging বার্তা পাঠান।
- ফায়ারবেস প্রমাণীকরণ টোকেন তৈরি এবং যাচাই করুন।
- আপনার ফায়ারবেস প্রকল্পগুলির সাথে যুক্ত Cloud Storage বাকেট এবং Cloud Firestore ডেটাবেসের মতো Google Cloud সংস্থানগুলি অ্যাক্সেস করুন৷
- ব্যবহারকারীর ডেটা খোঁজা বা প্রমাণীকরণের জন্য ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তন করার মতো জিনিসগুলি করতে আপনার নিজস্ব সরলীকৃত অ্যাডমিন কনসোল তৈরি করুন৷
আপনি যদি Node.js SDK-কে শেষ-ব্যবহারকারী অ্যাক্সেসের জন্য ক্লায়েন্ট হিসাবে ব্যবহার করতে আগ্রহী হন (উদাহরণস্বরূপ, একটি Node.js ডেস্কটপ বা IoT অ্যাপ্লিকেশনে), একটি বিশেষ সুবিধাপ্রাপ্ত পরিবেশ (যেমন একটি সার্ভারের মতো) থেকে অ্যাডমিন অ্যাক্সেসের বিপরীতে, আপনি পরিবর্তে ক্লায়েন্ট JavaScript SDK সেট আপ করার জন্য নির্দেশাবলী অনুসরণ করা উচিত।
এখানে একটি বৈশিষ্ট্য ম্যাট্রিক্স রয়েছে যা দেখায় যে ফায়ারবেস বৈশিষ্ট্যগুলি প্রতিটি ভাষায় সমর্থিত:
এই ব্যবহারের জন্য Admin SDK ইন্টিগ্রেশন সম্পর্কে আরও জানতে, সংশ্লিষ্ট Realtime Database , FCM , Authentication , Remote Config , এবং Cloud Storage ডকুমেন্টেশন দেখুন৷ এই পৃষ্ঠার বাকি অংশ Admin SDK জন্য মৌলিক সেটআপের উপর ফোকাস করে।
পূর্বশর্ত
আপনার একটি সার্ভার অ্যাপ্লিকেশন আছে তা নিশ্চিত করুন.
আপনি কোন Admin SDK ব্যবহার করেন তার উপর নির্ভর করে আপনার সার্ভার নিম্নলিখিতগুলি চালায় তা নিশ্চিত করুন:
- অ্যাডমিন Node.js SDK — Node.js 14+ (Node.js 18+ সুপারিশ করুন)
Node.js 14 এবং 16 সমর্থন বাতিল করা হয়েছে। - অ্যাডমিন জাভা SDK — Java 8+
- অ্যাডমিন পাইথন SDK — পাইথন 3.7+ (পাইথন 3.8+ সুপারিশ করুন)
Python 3.7 সমর্থন বন্ধ করা হয়েছে। - অ্যাডমিন Go SDK — Go 1.20+
- অ্যাডমিন .NET SDK — .NET ফ্রেমওয়ার্ক 4.6.2+ বা .NET 6.0+ এর জন্য .NET স্ট্যান্ডার্ড 2.0
- অ্যাডমিন Node.js SDK — Node.js 14+ (Node.js 18+ সুপারিশ করুন)
একটি Firebase প্রকল্প এবং পরিষেবা অ্যাকাউন্ট সেট আপ করুন৷
Firebase Admin SDK ব্যবহার করতে, আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:
- একটি ফায়ারবেস প্রকল্প।
- Firebase এর সাথে যোগাযোগ করার জন্য একটি Firebase অ্যাডমিন SDK পরিষেবা অ্যাকাউন্ট। আপনি যখন একটি Firebase প্রকল্প তৈরি করেন বা Google ক্লাউড প্রকল্পে Firebase যোগ করেন তখন এই পরিষেবা অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়৷
- আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্র সহ একটি কনফিগারেশন ফাইল।
আপনার যদি আগে থেকেই একটি Firebase প্রকল্প না থাকে, তাহলে আপনাকে Firebase কনসোলে একটি তৈরি করতে হবে। Firebase প্রকল্পগুলি সম্পর্কে আরও জানতে Firebase প্রকল্পগুলি বুঝতে দেখুন৷
SDK যোগ করুন
আপনি যদি একটি নতুন প্রকল্প সেট আপ করছেন, তাহলে আপনার পছন্দের ভাষার জন্য আপনাকে SDK ইনস্টল করতে হবে৷
Node.js
Firebase Admin Node.js SDK npm-এ উপলব্ধ। আপনার যদি ইতিমধ্যে একটি package.json
ফাইল না থাকে, তাহলে npm init
মাধ্যমে একটি তৈরি করুন। এরপর, firebase-admin
এনপিএম প্যাকেজটি ইনস্টল করুন এবং এটিকে আপনার package.json
এ সংরক্ষণ করুন :
npm install firebase-admin --save
আপনার অ্যাপ্লিকেশনে মডিউলটি ব্যবহার করতে, যেকোনো জাভাস্ক্রিপ্ট ফাইল থেকে এটি require
:
const { initializeApp } = require('firebase-admin/app');
আপনি যদি ES2015 ব্যবহার করেন তবে আপনি মডিউলটি import
করতে পারেন:
import { initializeApp } from 'firebase-admin/app';
জাভা
ফায়ারবেস অ্যাডমিন জাভা SDK Maven কেন্দ্রীয় সংগ্রহস্থলে প্রকাশিত হয়েছে। লাইব্রেরি ইনস্টল করতে, এটিকে আপনার build.gradle
ফাইলে নির্ভরতা হিসাবে ঘোষণা করুন:
dependencies {
implementation 'com.google.firebase:firebase-admin:9.4.1'
}
আপনি আপনার অ্যাপ্লিকেশন তৈরি করতে Maven ব্যবহার করলে, আপনি আপনার pom.xml
এ নিম্নলিখিত নির্ভরতা যোগ করতে পারেন:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>9.4.1</version>
</dependency>
পাইথন
Firebase Admin Python SDK পাইপ এর মাধ্যমে উপলব্ধ। আপনি sudo
মাধ্যমে সমস্ত ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারেন:
sudo pip install firebase-admin
অথবা, আপনি --user
পতাকা পাস করে শুধুমাত্র বর্তমান ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারেন:
pip install --user firebase-admin
যাও
Go Admin SDK go get
ইউটিলিটি ব্যবহার করে ইনস্টল করা যেতে পারে:
# Install the latest version:
go get firebase.google.com/go/v4@latest
# Or install a specific version:
go get firebase.google.com/go/v4@4.14.1
সি#
.NET প্যাকেজ ম্যানেজার ব্যবহার করে .NET Admin SDK ইনস্টল করা যেতে পারে:
Install-Package FirebaseAdmin -Version 3.0.1
বিকল্পভাবে, dotnet
কমান্ড-লাইন ইউটিলিটি ব্যবহার করে এটি ইনস্টল করুন:
dotnet add package FirebaseAdmin --version 3.0.1
অথবা, আপনি আপনার .csproj
ফাইলে নিম্নলিখিত প্যাকেজ রেফারেন্স এন্ট্রি যোগ করে এটি ইনস্টল করতে পারেন:
<ItemGroup>
<PackageReference Include="FirebaseAdmin" Version="3.0.1" />
</ItemGroup>
SDK আরম্ভ করুন
একবার আপনি একটি ফায়ারবেস প্রকল্প তৈরি করলে, আপনি Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে SDK শুরু করতে পারেন। যেহেতু ডিফল্ট শংসাপত্রের সন্ধান Google পরিবেশে সম্পূর্ণরূপে স্বয়ংক্রিয়, পরিবেশের ভেরিয়েবল বা অন্যান্য কনফিগারেশন সরবরাহ করার প্রয়োজন নেই, তাই SDK শুরু করার এই পদ্ধতিটি ক্লাউড রান, অ্যাপ ইঞ্জিন এবং ক্লাউড ফাংশনগুলির মতো Google পরিবেশে চলমান অ্যাপ্লিকেশনগুলির জন্য দৃঢ়ভাবে সুপারিশ করা হয়৷
Realtime Database , Cloud Storage , বা Cloud Functions মতো পরিষেবাগুলির জন্য ঐচ্ছিকভাবে শুরু করার বিকল্পগুলি নির্দিষ্ট করতে, FIREBASE_CONFIG
পরিবেশ পরিবর্তনশীল ব্যবহার করুন৷ যদি FIREBASE_CONFIG
ভেরিয়েবলের বিষয়বস্তু একটি {
দিয়ে শুরু হয় তবে এটি JSON অবজেক্ট হিসাবে পার্স করা হবে। অন্যথায় SDK অনুমান করে যে স্ট্রিং হল একটি JSON ফাইলের পথ যেখানে বিকল্পগুলি রয়েছে৷
Node.js
const app = 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();
একবার এটি আরম্ভ হয়ে গেলে, আপনি নিম্নলিখিত ধরনের কাজগুলি সম্পন্ন করতে Admin SDK ব্যবহার করতে পারেন:
- কাস্টম প্রমাণীকরণ প্রয়োগ করুন
- আপনার Firebase Authentication ব্যবহারকারীদের পরিচালনা করুন
- Firebase Data Connect পরিষেবায় প্রশাসনিক প্রশ্ন এবং মিউটেশনগুলি সম্পাদন করুন ৷
- Realtime Database থেকে ডেটা পড়ুন এবং লিখুন
- Firebase Cloud Messaging বার্তা পাঠান
একটি OAuth 2.0 রিফ্রেশ টোকেন ব্যবহার করে৷
Admin SDK একটি শংসাপত্রও প্রদান করে যা আপনাকে Google OAuth2 রিফ্রেশ টোকেন দিয়ে প্রমাণীকরণ করতে দেয়:
Node.js
const myRefreshToken = '...'; // Get refresh token from OAuth2 flow
initializeApp({
credential: refreshToken(myRefreshToken),
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"),
});
নন-Google পরিবেশে SDK চালু করুন
আপনি যদি একটি নন-Google সার্ভার পরিবেশে কাজ করেন যেখানে ডিফল্ট শংসাপত্রের সন্ধান সম্পূর্ণরূপে স্বয়ংক্রিয় হতে পারে না, আপনি একটি রপ্তানি করা পরিষেবা অ্যাকাউন্ট কী ফাইলের সাথে SDK শুরু করতে পারেন৷
Firebase প্রকল্পগুলি Google পরিষেবা অ্যাকাউন্টগুলিকে সমর্থন করে, যা আপনি আপনার অ্যাপ সার্ভার বা বিশ্বস্ত পরিবেশ থেকে Firebase সার্ভার API কল করতে ব্যবহার করতে পারেন৷ আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করছেন বা আপনার অ্যাপ্লিকেশনটি প্রাঙ্গনে স্থাপন করছেন, আপনি সার্ভার অনুরোধ অনুমোদন করতে এই পরিষেবা অ্যাকাউন্টের মাধ্যমে প্রাপ্ত শংসাপত্রগুলি ব্যবহার করতে পারেন৷
একটি পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ করতে এবং এটিকে Firebase পরিষেবাগুলি অ্যাক্সেস করার অনুমোদন দিতে, আপনাকে অবশ্যই JSON ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে৷
আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:
Firebase কনসোলে, সেটিংস > পরিষেবা অ্যাকাউন্ট খুলুন।
জেনারেট নিউ প্রাইভেট কী ক্লিক করুন, তারপর জেনারেট কী ক্লিক করে নিশ্চিত করুন।
কী আছে এমন JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।
একটি পরিষেবা অ্যাকাউন্টের মাধ্যমে অনুমোদন করার সময়, আপনার আবেদনে শংসাপত্রগুলি প্রদান করার জন্য আপনার কাছে দুটি বিকল্প রয়েছে৷ আপনি হয় GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন, অথবা আপনি কোডে পরিষেবা অ্যাকাউন্ট কী-এর পথটি স্পষ্টভাবে পাস করতে পারেন৷ প্রথম বিকল্পটি আরো নিরাপদ এবং দৃঢ়ভাবে সুপারিশ করা হয়।
পরিবেশ পরিবর্তনশীল সেট করতে:
এনভায়রনমেন্ট ভেরিয়েবল GOOGLE_APPLICATION_CREDENTIALS JSON ফাইলের ফাইল পাথে সেট করুন যাতে আপনার পরিষেবা অ্যাকাউন্ট কী রয়েছে। এই ভেরিয়েবলটি শুধুমাত্র আপনার বর্তমান শেল সেশনে প্রযোজ্য, তাই আপনি যদি একটি নতুন সেশন খোলেন, তাহলে ভেরিয়েবলটি আবার সেট করুন।
লিনাক্স বা ম্যাকোস
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
উইন্ডোজ
PowerShell এর সাথে:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
আপনি উপরের ধাপগুলি সম্পন্ন করার পরে, অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) আপনার প্রমাণপত্রগুলিকে স্পষ্টভাবে নির্ধারণ করতে সক্ষম হয়, যা আপনাকে নন-Google পরিবেশে পরীক্ষা বা চালানোর সময় পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করার অনুমতি দেয়।
দেখানো হিসাবে SDK শুরু করুন:
Node.js
initializeApp({
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(),
ProjectId = "my-project-id",
});
একাধিক অ্যাপ চালু করুন
বেশিরভাগ ক্ষেত্রে, আপনাকে শুধুমাত্র একটি একক, ডিফল্ট অ্যাপ শুরু করতে হবে। আপনি দুটি সমতুল্য উপায়ে সেই অ্যাপের পরিষেবাগুলি অ্যাক্সেস করতে পারেন:
Node.js
// Initialize the default app
const defaultApp = initializeApp(defaultAppConfig);
console.log(defaultApp.name); // '[DEFAULT]'
// Retrieve services via the defaultApp variable...
let defaultAuth = getAuth(defaultApp);
let defaultDatabase = getDatabase(defaultApp);
// ... or use the equivalent shorthand notation
defaultAuth = getAuth();
defaultDatabase = getDatabase();
জাভা
// 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)
}
সি#
// 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;
কিছু ব্যবহারের ক্ষেত্রে আপনাকে একই সময়ে একাধিক অ্যাপ তৈরি করতে হবে। উদাহরণস্বরূপ, আপনি একটি ফায়ারবেস প্রকল্পের Realtime Database থেকে ডেটা পড়তে এবং অন্য প্রকল্পের জন্য কাস্টম টোকেন পড়তে চাইতে পারেন। অথবা আপনি পৃথক শংসাপত্র সহ দুটি অ্যাপ প্রমাণীকরণ করতে চাইতে পারেন। Firebase SDK আপনাকে একই সময়ে একাধিক অ্যাপ তৈরি করতে দেয়, প্রতিটির নিজস্ব কনফিগারেশন তথ্য সহ।
Node.js
// Initialize the default app
initializeApp(defaultAppConfig);
// Initialize another app with a different config
var otherApp = initializeApp(otherAppConfig, 'other');
console.log(getApp().name); // '[DEFAULT]'
console.log(otherApp.name); // 'other'
// Use the shorthand notation to retrieve the default app's services
const defaultAuth = getAuth();
const defaultDatabase = getDatabase();
// Use the otherApp variable to retrieve the other app's services
const otherAuth = getAuth(otherApp);
const otherDatabase = getDatabase(otherApp);
জাভা
// 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);
Realtime Database এবং Authentication জন্য স্কোপ সেট করুন
আপনি যদি Realtime Database বা Authentication জন্য Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র সহ একটি Google Compute Engine VM ব্যবহার করেন, তাহলে সঠিক অ্যাক্সেসের সুযোগগুলিও সেট করতে ভুলবেন না। Realtime Database এবং Authentication জন্য, আপনার userinfo.email
এবং cloud-platform
বা firebase.database
এ শেষ হওয়া স্কোপের প্রয়োজন। বিদ্যমান অ্যাক্সেস স্কোপগুলি পরীক্ষা করতে এবং তাদের পরিবর্তন করতে, 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"
জিক্লাউড শেষ ব্যবহারকারীর শংসাপত্রের সাথে পরীক্ষা করা হচ্ছে
gcloud auth application-default login
চালানোর মাধ্যমে প্রাপ্ত Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে স্থানীয়ভাবে Admin SDK পরীক্ষা করার সময়, নিম্নলিখিত কারণে Firebase Authentication ব্যবহার করার জন্য অতিরিক্ত পরিবর্তন প্রয়োজন:
- Firebase Authentication gcloud OAuth ক্লায়েন্ট আইডি ব্যবহার করে তৈরি করা gcloud শেষ ব্যবহারকারীর শংসাপত্র গ্রহণ করে না।
- Firebase Authentication এই ধরনের শেষ ব্যবহারকারীর শংসাপত্রের জন্য প্রাথমিককরণের সময় প্রজেক্ট আইডি প্রদান করতে হবে।
একটি সমাধান হিসাবে, আপনি আপনার নিজস্ব OAuth 2.0 ক্লায়েন্ট আইডি ব্যবহার করে gcloud- এ Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র তৈরি করতে পারেন। OAuth ক্লায়েন্ট আইডি একটি ডেস্কটপ অ্যাপ অ্যাপ্লিকেশন প্রকার হতে হবে।
জিক্লাউড
gcloud auth application-default login --client-id-file=[/path/to/client/id/file]
আপনি অ্যাপ ইনিশিয়ালাইজেশনে প্রজেক্ট আইডি স্পষ্টভাবে উল্লেখ করতে পারেন অথবা শুধুমাত্র GOOGLE_CLOUD_PROJECT
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে পারেন। পরেরটি আপনার কোড পরীক্ষা করার জন্য কোনো অতিরিক্ত পরিবর্তন করার প্রয়োজন এড়ায়।
স্পষ্টভাবে প্রকল্প আইডি নির্দিষ্ট করতে:
Node.js
import { initializeApp, applicationDefault } from 'firebase-admin/app';
initializeApp({
credential: applicationDefault(),
projectId: '<FIREBASE_PROJECT_ID>',
});
জাভা
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.getApplicationDefault())
.setProjectId("<FIREBASE_PROJECT_ID>")
.build();
FirebaseApp.initializeApp(options);
পাইথন
app_options = {'projectId': '<FIREBASE_PROJECT_ID>'}
default_app = firebase_admin.initialize_app(options=app_options)
যাও
config := &firebase.Config{ProjectID: "<FIREBASE_PROJECT_ID>"}
app, err := firebase.NewApp(context.Background(), config)
if err != nil {
log.Fatalf("error initializing app: %v\n", err)
}
সি#
FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.GetApplicationDefault(),
ProjectId = "<FIREBASE_PROJECT_ID>",
});
পরবর্তী পদক্ষেপ
ফায়ারবেস সম্পর্কে জানুন:
ফায়ারবেস অ্যাপের নমুনা অন্বেষণ করুন।
Node.js , Java , এবং Python-এর জন্য GitHub-এ ওপেন সোর্স কোড অন্বেষণ করুন।
Admin SDK সম্পর্কিত ব্লগ পোস্ট পড়ুন Admin SDK এর একজন নির্মাতার। উদাহরণস্বরূপ: একটি প্রক্সি সার্ভারের মাধ্যমে Firestore এবং Firebase অ্যাক্সেস করা ।
আপনার অ্যাপে Firebase বৈশিষ্ট্য যোগ করুন:
- Cloud Functions সহ একটি সার্ভারহীন ব্যাকএন্ড লিখুন।
- Cloud Storage সহ Realtime Database বা ব্লব ডেটা সহ তথ্য সংরক্ষণ করুন।
- Cloud Messaging মাধ্যমে বিজ্ঞপ্তি পান।