Admin SDK হলো সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধাপ্রাপ্ত পরিবেশ থেকে ফায়ারবেসের সাথে যোগাযোগ করতে এবং নিম্নলিখিত কাজগুলো সম্পাদন করতে দেয়:
- সম্পূর্ণ অ্যাডমিন অধিকারসহ বাল্ক ডেটা ম্যানেজমেন্ট এবং অন্যান্য অপারেশনের জন্য একটি Firebase Data Connect সার্ভিসে কোয়েরি ও মিউটেশন সম্পাদন করুন।
- সম্পূর্ণ অ্যাডমিন অধিকারসহ Realtime Database ডেটা পড়ুন এবং লিখুন।
- Firebase Cloud Messaging Firebase Cloud Messaging সার্ভার প্রোটোকলগুলোর একটি সহজ ও বিকল্প পদ্ধতি ব্যবহার করে প্রোগ্রামের মাধ্যমে ফায়ারবেস ক্লাউড মেসেজিং বার্তা পাঠান।
- ফায়ারবেস অথেন্টিকেশন টোকেন তৈরি ও যাচাই করুন।
- আপনার Firebase প্রোজেক্টের সাথে যুক্ত Google Cloud রিসোর্স, যেমন Cloud Storage বাকেট এবং Cloud Firestore ডেটাবেস অ্যাক্সেস করুন।
- ব্যবহারকারীর তথ্য খোঁজা বা প্রমাণীকরণের জন্য ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তনের মতো কাজ করার জন্য আপনার নিজস্ব একটি সরলীকৃত অ্যাডমিন কনসোল তৈরি করুন।
আপনি যদি কোনো বিশেষাধিকারপ্রাপ্ত পরিবেশ (যেমন একটি সার্ভার) থেকে অ্যাডমিন অ্যাক্সেসের পরিবর্তে, সাধারণ ব্যবহারকারীর অ্যাক্সেসের জন্য (উদাহরণস্বরূপ, একটি Node.js ডেস্কটপ বা IoT অ্যাপ্লিকেশনে) ক্লায়েন্ট হিসেবে Node.js SDK ব্যবহার করতে আগ্রহী হন, তাহলে আপনার ক্লায়েন্ট জাভাস্ক্রিপ্ট SDK সেট আপ করার নির্দেশাবলী অনুসরণ করা উচিত।
এখানে একটি ফিচার ম্যাট্রিক্স দেওয়া হলো, যেখানে দেখানো হয়েছে প্রতিটি ভাষায় ফায়ারবেসের কোন কোন ফিচার সমর্থিত:
এই ব্যবহারগুলোর জন্য Admin SDK ইন্টিগ্রেশন সম্পর্কে আরও জানতে, সংশ্লিষ্ট Realtime Database , FCM , Authentication , Remote Config এবং Cloud Storage ডকুমেন্টেশন দেখুন। এই পৃষ্ঠার বাকি অংশে Admin SDK এর বেসিক সেটআপের উপর আলোকপাত করা হয়েছে।
পূর্বশর্ত
নিশ্চিত করুন যে আপনার একটি সার্ভার অ্যাপ আছে।
আপনি কোন Admin SDK ব্যবহার করছেন তার উপর নির্ভর করে, আপনার সার্ভারে নিম্নলিখিত বিষয়গুলো চালু আছে কিনা তা নিশ্চিত করুন:
- অ্যাডমিন নোড.জেএস এসডিকে — নোড.জেএস ১৮+ (নোড.জেএস ২০+ সুপারিশকৃত)
Node.js 18-এর সমর্থন বাতিল করা হয়েছে। - অ্যাডমিন জাভা এসডিকে — জাভা ৮+
- অ্যাডমিন পাইথন এসডিকে — পাইথন ৩.৯+ (পাইথন ৩.১০+ সুপারিশকৃত)
পাইথন ৩.৯-এর সমর্থন অপ্রচলিত। - অ্যাডমিন গো এসডিকে — গো ১.২৩+
- অ্যাডমিন .NET SDK — .NET Framework 4.6.2+ অথবা .NET Standard 2.0 অথবা .NET 6.0+ (প্রস্তাবিত .NET 8.0+)
.NET 6.0 এবং 7.0-এর সমর্থন বাতিল করা হয়েছে।
- অ্যাডমিন নোড.জেএস এসডিকে — নোড.জেএস ১৮+ (নোড.জেএস ২০+ সুপারিশকৃত)
একটি ফায়ারবেস প্রজেক্ট এবং সার্ভিস অ্যাকাউন্ট সেট আপ করুন
Firebase Admin SDK ব্যবহার করার জন্য আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
- একটি ফায়ারবেস প্রজেক্ট।
- ফায়ারবেসের সাথে যোগাযোগের জন্য একটি ফায়ারবেস অ্যাডমিন এসডিকে সার্ভিস অ্যাকাউন্ট। যখন আপনি একটি ফায়ারবেস প্রজেক্ট তৈরি করেন অথবা কোনো গুগল ক্লাউড প্রজেক্টে ফায়ারবেস যুক্ত করেন, তখন এই সার্ভিস অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।
- আপনার সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়ালসহ একটি কনফিগারেশন ফাইল।
আপনার যদি আগে থেকে কোনো ফায়ারবেস প্রজেক্ট না থাকে, তাহলে আপনাকে Firebase কনসোলে একটি তৈরি করতে হবে। ফায়ারবেস প্রজেক্ট সম্পর্কে আরও জানতে ‘আন্ডারস্ট্যান্ড ফায়ারবেস প্রজেক্টস’ দেখুন।
SDK যোগ করুন
আপনি যদি একটি নতুন প্রজেক্ট তৈরি করেন, তাহলে আপনাকে আপনার পছন্দের ভাষার এসডিকে ইনস্টল করতে হবে।
নোড.জেএস
Firebase Admin Node.js SDK-টি npm-এ পাওয়া যায়। যদি আপনার package.json ফাইল আগে থেকে তৈরি না থাকে, তাহলে npm init মাধ্যমে একটি তৈরি করুন। এরপর, firebase-admin npm প্যাকেজটি ইনস্টল করুন এবং আপনার package.json ফাইলে সেভ করুন।
npm install firebase-admin --save
আপনার অ্যাপ্লিকেশনে মডিউলটি ব্যবহার করতে, যেকোনো জাভাস্ক্রিপ্ট ফাইল থেকে এটি require :
const { initializeApp } = require('firebase-admin/app');
আপনি যদি ES2015 ব্যবহার করেন, তাহলে মডিউলটি import করতে পারেন:
import { initializeApp } from 'firebase-admin/app';
জাভা
Firebase Admin Java SDK-টি Maven সেন্ট্রাল রিপোজিটরিতে প্রকাশিত হয়েছে। লাইব্রেরিটি ইনস্টল করতে, আপনার build.gradle ফাইলে এটিকে একটি ডিপেন্ডেন্সি হিসেবে ঘোষণা করুন:
dependencies {
implementation 'com.google.firebase:firebase-admin:9.8.0'
}
আপনি যদি আপনার অ্যাপ্লিকেশনটি বিল্ড করার জন্য Maven ব্যবহার করেন, তাহলে আপনার pom.xml এ নিম্নলিখিত ডিপেন্ডেন্সিটি যোগ করতে পারেন:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>9.8.0</version>
</dependency>
পাইথন
Firebase Admin Python SDK-টি pip- এর মাধ্যমে পাওয়া যায়। আপনি sudo ব্যবহার করে সকল ব্যবহারকারীর জন্য লাইব্রেরিটি ইনস্টল করতে পারেন:
sudo pip install firebase-admin
অথবা, আপনি --user ফ্ল্যাগটি ব্যবহার করে শুধুমাত্র বর্তমান ব্যবহারকারীর জন্য লাইব্রেরিটি ইনস্টল করতে পারেন:
pip install --user firebase-admin
যান
go get ইউটিলিটি ব্যবহার করে Go Admin SDK ইনস্টল করা যায়:
# 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.19.0
সি#
.NET প্যাকেজ ম্যানেজার ব্যবহার করে .NET Admin SDK ইনস্টল করা যায়:
Install-Package FirebaseAdmin -Version 3.5.0
বিকল্পভাবে, dotnet কমান্ড-লাইন ইউটিলিটি ব্যবহার করে এটি ইনস্টল করুন:
dotnet add package FirebaseAdmin --version 3.5.0
অথবা, আপনি আপনার .csproj ফাইলে নিম্নলিখিত প্যাকেজ রেফারেন্স এন্ট্রিটি যোগ করে এটি ইনস্টল করতে পারেন:
<ItemGroup>
<PackageReference Include="FirebaseAdmin" Version="3.5.0" />
</ItemGroup>
SDK শুরু করুন
একবার আপনি একটি Firebase প্রজেক্ট তৈরি করে ফেললে, আপনি Google Application Default Credentials ব্যবহার করে SDK-টি ইনিশিয়ালাইজ করতে পারেন। যেহেতু Google পরিবেশে ডিফল্ট ক্রেডেনশিয়াল খোঁজার প্রক্রিয়াটি সম্পূর্ণ স্বয়ংক্রিয় এবং এর জন্য কোনো এনভায়রনমেন্ট ভেরিয়েবল বা অন্য কোনো কনফিগারেশন দেওয়ার প্রয়োজন হয় না, তাই Firebase App Hosting , Cloud Run, App Engine, এবং Cloud Functions for Firebase মতো Google পরিবেশে চলমান অ্যাপ্লিকেশনগুলির জন্য SDK ইনিশিয়ালাইজ করার এই পদ্ধতিটি জোরালোভাবে সুপারিশ করা হয়।
Realtime Database , Cloud Storage বা Cloud Functions মতো পরিষেবাগুলির জন্য ঐচ্ছিকভাবে ইনিশিয়ালাইজেশন অপশন নির্দিষ্ট করতে, FIREBASE_CONFIG এনভায়রনমেন্ট ভেরিয়েবলটি ব্যবহার করুন। যদি FIREBASE_CONFIG ভেরিয়েবলের বিষয়বস্তু একটি { দিয়ে শুরু হয়, তবে এটিকে একটি JSON অবজেক্ট হিসাবে পার্স করা হবে। অন্যথায়, SDK ধরে নেয় যে স্ট্রিংটি হলো অপশনগুলো ধারণকারী একটি JSON ফাইলের পাথ।
নোড.জেএস
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 একটি ক্রেডেনশিয়ালও প্রদান করে, যা আপনাকে গুগল OAuth2 রিফ্রেশ টোকেন ব্যবহার করে প্রমাণীকরণের সুযোগ দেয়:
নোড.জেএস
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 = CredentialFactory.FromFile<UserCredential>("path/to/refreshToken.json").ToGoogleCredential(),
});
গুগল-বহির্ভূত পরিবেশে SDK চালু করুন
আপনি যদি গুগল-বহির্ভূত কোনো সার্ভার পরিবেশে কাজ করেন, যেখানে ডিফল্ট ক্রেডেনশিয়াল অনুসন্ধান সম্পূর্ণরূপে স্বয়ংক্রিয় করা সম্ভব নয়, তাহলে আপনি একটি এক্সপোর্ট করা সার্ভিস অ্যাকাউন্ট কী ফাইল দিয়ে SDK-টি ইনিশিয়ালাইজ করতে পারেন।
ফায়ারবেস প্রজেক্টগুলো গুগল সার্ভিস অ্যাকাউন্ট সমর্থন করে, যা ব্যবহার করে আপনি আপনার অ্যাপ সার্ভার বা বিশ্বস্ত পরিবেশ থেকে ফায়ারবেস সার্ভার এপিআই কল করতে পারেন। আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করেন বা আপনার অ্যাপ্লিকেশনটি অন-প্রিমিসেস-এ ডেপ্লয় করেন, তবে এই সার্ভিস অ্যাকাউন্টের মাধ্যমে প্রাপ্ত ক্রেডেনশিয়াল ব্যবহার করে সার্ভার রিকোয়েস্ট অনুমোদন করতে পারেন।
একটি সার্ভিস অ্যাকাউন্টকে প্রমাণীকরণ করতে এবং ফায়ারবেস সার্ভিসগুলো অ্যাক্সেস করার জন্য অনুমোদন দিতে, আপনাকে অবশ্যই JSON ফরম্যাটে একটি প্রাইভেট কী ফাইল তৈরি করতে হবে।
আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:
Firebase কনসোলে, সেটিংস > পরিষেবা অ্যাকাউন্ট খুলুন।
Generate New Private Key-তে ক্লিক করুন, তারপর Generate Key-তে ক্লিক করে নিশ্চিত করুন।
কী-টি ধারণকারী JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।
সার্ভিস অ্যাকাউন্টের মাধ্যমে অনুমোদন করার সময়, আপনার অ্যাপ্লিকেশনে ক্রেডেনশিয়াল সরবরাহ করার জন্য দুটি বিকল্প রয়েছে। আপনি হয় GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটি সেট করতে পারেন, অথবা কোডের মধ্যে সার্ভিস অ্যাকাউন্ট কী-এর পাথটি স্পষ্টভাবে পাস করতে পারেন। প্রথম বিকল্পটি অধিক নিরাপদ এবং এটি ব্যবহারের জন্য জোরালোভাবে সুপারিশ করা হয়।
এনভায়রনমেন্ট ভেরিয়েবল সেট করতে:
আপনার সার্ভিস অ্যাকাউন্ট কী ধারণকারী JSON ফাইলের ফাইল পাথে GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন। এই ভেরিয়েবলটি শুধুমাত্র আপনার বর্তমান শেল সেশনের জন্য প্রযোজ্য, তাই আপনি যদি একটি নতুন সেশন খোলেন, তাহলে ভেরিয়েবলটি আবার সেট করুন।
লিনাক্স বা ম্যাকওএস
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
উইন্ডোজ
পাওয়ারশেলের সাথে:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
উপরের ধাপগুলো সম্পন্ন করার পর, অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) আপনার ক্রেডেনশিয়ালগুলো স্বয়ংক্রিয়ভাবে নির্ধারণ করতে সক্ষম হয়, যার ফলে আপনি গুগল-বহির্ভূত পরিবেশে পরীক্ষা বা চালানোর সময় সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করতে পারেন।
দেখানো অনুযায়ী SDK শুরু করুন:
নোড.জেএস
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",
});
একাধিক অ্যাপ চালু করুন
বেশিরভাগ ক্ষেত্রে, আপনাকে কেবল একটি ডিফল্ট অ্যাপ চালু করতে হয়। আপনি দুটি সমতুল্য উপায়ে সেই অ্যাপের পরিষেবাগুলো অ্যাক্সেস করতে পারেন:
নোড.জেএস
// 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 থেকে ডেটা পড়তে এবং অন্য একটি প্রজেক্টের জন্য কাস্টম টোকেন তৈরি করতে চাইতে পারেন। অথবা আপনি দুটি অ্যাপকে আলাদা ক্রেডেনশিয়াল দিয়ে অথেন্টিকেট করতে চাইতে পারেন। ফায়ারবেস এসডিকে আপনাকে একই সাথে একাধিক অ্যাপ তৈরি করার সুযোগ দেয়, যার প্রত্যেকটির নিজস্ব কনফিগারেশন তথ্য থাকে।
নোড.জেএস
// 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 জন্য গুগল অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস সহ একটি গুগল কম্পিউট ইঞ্জিন ভিএম ব্যবহার করেন, তাহলে সঠিক অ্যাক্সেস স্কোপগুলোও সেট করা নিশ্চিত করুন। 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 এন্ড ইউজার ক্রেডেনশিয়াল দিয়ে পরীক্ষা করা হচ্ছে
gcloud auth application-default login চালিয়ে প্রাপ্ত গুগল অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে Admin SDK স্থানীয়ভাবে পরীক্ষা করার সময়, নিম্নলিখিত কারণগুলির জন্য Firebase Authentication ব্যবহার করতে অতিরিক্ত পরিবর্তনের প্রয়োজন হয়:
- gcloud OAuth ক্লায়েন্ট আইডি ব্যবহার করে তৈরি করা gcloud এন্ড ইউজার ক্রেডেনশিয়াল Firebase Authentication গ্রহণ করে না।
- এই ধরনের এন্ড ইউজার ক্রেডেনশিয়ালের জন্য Firebase Authentication চালু করার সময় প্রজেক্ট আইডি প্রদান করতে হয়।
একটি বিকল্প সমাধান হিসেবে, আপনি আপনার নিজস্ব OAuth 2.0 ক্লায়েন্ট আইডি ব্যবহার করে gcloud- এ গুগল অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল তৈরি করতে পারেন। OAuth ক্লায়েন্ট আইডিটিকে অবশ্যই ডেস্কটপ অ্যাপ অ্যাপ্লিকেশন টাইপের হতে হবে।
জিক্লাউড
gcloud auth application-default login --client-id-file=[/path/to/client/id/file]
আপনি অ্যাপ চালু করার সময় প্রজেক্ট আইডি স্পষ্টভাবে উল্লেখ করতে পারেন অথবা শুধু GOOGLE_CLOUD_PROJECT এনভায়রনমেন্ট ভেরিয়েবলটি ব্যবহার করতে পারেন। পরেরটি ব্যবহার করলে আপনার কোড পরীক্ষা করার জন্য কোনো অতিরিক্ত পরিবর্তন করার প্রয়োজন হয় না।
প্রজেক্ট আইডি স্পষ্টভাবে উল্লেখ করতে:
নোড.জেএস
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 -সম্পর্কিত ব্লগ পোস্টগুলো পড়ুন। উদাহরণস্বরূপ: প্রক্সি সার্ভারের মাধ্যমে ফায়ারস্টোর এবং ফায়ারবেস অ্যাক্সেস করা ।
আপনার অ্যাপে ফায়ারবেস ফিচার যোগ করুন:
- Cloud Functions ব্যবহার করে একটি সার্ভারলেস ব্যাকএন্ড তৈরি করুন।
- Realtime Database তথ্য অথবা Cloud Storage ব্লব ডেটা সংরক্ষণ করুন।
- Cloud Messaging এর মাধ্যমে নোটিফিকেশন গ্রহণ করুন।