আপনার সার্ভারে Firebase অ্যাডমিন SDK যোগ করুন

Admin SDK হল সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধা প্রাপ্ত পরিবেশ থেকে Firebase-এর সাথে ইন্টার‍্যাক্ট করতে দেয়, যাতে আপনি এই ধরনের অ্যাকশন নিতে পারেন:

  • সম্পূর্ণ অ্যাডমিন বিশেষাধিকার সহ বাল্ক ডেটা ম্যানেজমেন্ট এবং অন্যান্য অপারেশনের জন্য Firebase SQL Connect পরিষেবায় কোয়েরি এবং মিউটেশন সম্পাদন করুন।
  • সম্পূর্ণ অ্যাডমিন বিশেষাধিকার সহ Realtime Database ডেটা পড়া ও লেখা।
  • Firebase Cloud Messaging সার্ভার প্রোটোকলের সহজ, বিকল্প পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিক্যালি Firebase Cloud Messaging মেসেজ পাঠান।
  • Firebase যাচাইকরণ টোকেন তৈরি ও যাচাই করুন।
  • আপনার Firebase প্রোজেক্টের সাথে যুক্ত Google Cloud রিসোর্স যেমন Cloud Storage বাকেট এবং Cloud Firestore ডেটাবেস অ্যাক্সেস করুন।
  • ব্যবহারকারীর ডেটা খোঁজা বা যাচাইকরণের জন্য ব্যবহারকারীর ইমেল আইডি পরিবর্তন করার মতো কাজ করতে আপনার নিজস্ব সরলীকৃত অ্যাডমিন কনসোল তৈরি করুন।

আপনি যদি বিশেষ সুবিধাপ্রাপ্ত পরিবেশ (যেমন সার্ভার) থেকে অ্যাডমিন অ্যাক্সেসের পরিবর্তে ব্যবহারকারীর অ্যাক্সেসের জন্য ক্লায়েন্ট হিসেবে Node.js SDK ব্যবহার করতে আগ্রহী হন (যেমন, Node.js ডেস্কটপ বা IoT অ্যাপ্লিকেশনে), তাহলে আপনাকে এর পরিবর্তে ক্লায়েন্ট জাভাস্ক্রিপ্ট SDK সেট-আপ করার নির্দেশাবলী অনুসরণ করতে হবে।

এখানে একটি ফিচার ম্যাট্রিক্স দেওয়া হল যা দেখায় যে প্রতিটি ভাষায় কোন কোন Firebase ফিচার কাজ করে:

বৈশিষ্ট্য Node.js জাভা Python Go C# Dart
কাস্টম টোকেন মিন্টিং
আইডি টোকেন যাচাইকরণ
ব্যবহারকারী ম্যানেজমেন্ট
কাস্টম দাবির মাধ্যমে অ্যাক্সেস নিয়ন্ত্রণ করা
রিফ্রেশ টোকেন প্রত্যাহার
ব্যবহারকারীদের ইমপোর্ট করুন
সেশন কুকি ম্যানেজমেন্ট
ইমেল অ্যাকশন লিঙ্ক জেনারেট করা
SAML/OIDC পরিষেবা প্রদানকারীর কনফিগারেশন ম্যানেজ করা
মাল্টি-টেনেন্সি সহায়তা
Firebase SQL Connect
Realtime Database *
Firebase Cloud Messaging
FCM মাল্টিকাস্ট
FCM-এর বিষয় সাবস্ক্রিপশন ম্যানেজ করুন
Cloud Storage
Cloud Firestore
Cloud Tasks-এর মাধ্যমে ফাংশন এনকিউ করা
প্রোজেক্ট ম্যানেজমেন্ট
নিরাপত্তা সংক্রান্ত নিয়ম
ML মডেল ম্যানেজমেন্ট
Firebase Remote Config
Firebase App Check
Firebase Extensions
Firebase Phone Number Verification

এইসব ব্যবহারের জন্য Admin SDK ইন্টিগ্রেশন সম্পর্কে আরও জানতে, সংশ্লিষ্ট Realtime Database, FCM, Authentication, Remote Config, এবং Cloud Storage ডকুমেন্টেশন দেখুন। এই পৃষ্ঠার বাকি অংশে Admin SDK-এর প্রাথমিক সেট-আপের উপর ফোকাস করা হয়েছে।

পূর্বশর্ত

  • আপনার কাছে সার্ভার অ্যাপ আছে কিনা তা নিশ্চিত করুন।

  • আপনি কোন Admin SDK ব্যবহার করেন তার উপর নির্ভর করে আপনার সার্ভার নিম্নলিখিতগুলি রান করে কিনা তা নিশ্চিত করুন:

    • Admin Node.js SDK — Node.js 22+
    • Admin Java SDK — Java 8+
    • Admin Python SDK — Python 3.9+ (Python 3.10+ সাজেস্ট করা হয়)
      Python 3.9-এর জন্য সহায়তা বন্ধ করা হয়েছে।
    • Admin Go SDK — Go 1.25+
    • Admin .NET SDK — .NET Framework 4.6.2+ বা .NET Standard 2.0 বা .NET 6.0+ (.NET 8.0+ সাজেস্ট করা হয়)
      .NET 6.0 এবং 7.0-এর জন্য সহায়তা বন্ধ করা হয়েছে।
    • Experimental Admin Dart SDK — আপনার সার্ভারে Dart SDK 3.9 বা তার পরবর্তী কোনও ভার্সন রান করছে কিনা তা নিশ্চিত করুন।

Firebase প্রোজেক্ট ও পরিষেবা অ্যাকাউন্ট সেট-আপ করা

Firebase Admin SDK ব্যবহার করতে, আপনার নিম্নলিখিতগুলি প্রয়োজন হবে:

  • একটি Firebase প্রোজেক্ট।
  • Firebase-এর সাথে যোগাযোগ করার জন্য Firebase Admin SDK পরিষেবা অ্যাকাউন্ট। আপনি Firebase প্রোজেক্ট তৈরি করলে বা Google Cloud প্রোজেক্টে Firebase যোগ করলে, এই পরিষেবা অ্যাকাউন্ট অটোমেটিক তৈরি হয়ে যায়।
  • আপনার পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল সহ একটি কনফিগারেশন ফাইল।

আপনার আগে থেকে কোনও Firebase প্রোজেক্ট না থাকলে, আপনাকে Firebase কনসোলে একটি প্রোজেক্ট তৈরি করতে হবে। Firebase প্রোজেক্ট সম্পর্কে আরও জানতে Firebase প্রোজেক্ট বুঝুন পৃষ্ঠা দেখুন।

SDK যোগ করুন

আপনি নতুন প্রোজেক্ট সেট-আপ করলে, আপনার পছন্দের ভাষার জন্য SDK ইনস্টল করতে হবে।

Node.js

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.11.0'
}

আপনার অ্যাপ্লিকেশন তৈরি করতে Maven ব্যবহার করলে, আপনার pom.xml-এ নিম্নলিখিত ডিপেন্ডেন্সি যোগ করতে পারবেন:

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

Python

Firebase Admin Python SDK, pip-এর মাধ্যমে উপলভ্য। আপনি sudo-এর মাধ্যমে সব ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারবেন:

sudo pip install firebase-admin

অথবা, আপনি --user ফ্ল্যাগ পাস করে শুধুমাত্র বর্তমান ব্যবহারকারীর জন্য লাইব্রেরি ইনস্টল করতে পারেন:

pip install --user firebase-admin

Go

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.22.0

C#

.NET প্যাকেজ ম্যানেজার ব্যবহার করে .NET Admin SDK ইনস্টল করা যেতে পারে:

Install-Package FirebaseAdmin -Version 3.7.0

বিকল্প হিসেবে, dotnet কমান্ড-লাইন ইউটিলিটি ব্যবহার করে এটি ইনস্টল করুন:

dotnet add package FirebaseAdmin --version 3.7.0

অথবা, আপনার .csproj ফাইলে নিম্নলিখিত প্যাকেজ রেফারেন্স এন্ট্রি যোগ করে এটি ইনস্টল করতে পারেন:

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

Dart (পরীক্ষামূলক)

dart pub add firebase_admin_sdk

আপনার অ্যাপ্লিকেশনে মডিউল ব্যবহার করতে, যেভাবে দেখানো হয়েছে সেইভাবে এটি ইমপোর্ট করুন:

import 'package:firebase_admin_sdk';

// Also import the separate Firestore package if you're interacting with Firestore.
import 'package:google_cloud_firestore/google_cloud_firestore.dart';

SDK শুরু করা

আপনি Firebase প্রোজেক্ট তৈরি করার পরে, Google Application Default Credentials-এর মাধ্যমে SDK শুরু করতে পারবেন। Google এনভায়রনমেন্টে ডিফল্ট ক্রেডেনশিয়াল লুক-আপ সম্পূর্ণ অটোমেটেড, তাই এনভায়রনমেন্ট ভেরিয়েবল বা অন্য কনফিগারেশন দেওয়ার প্রয়োজন হয় না। Google এনভায়রনমেন্টে রান করা অ্যাপ্লিকেশনের জন্য SDK ইনিশিয়ালাইজ করার এই পদ্ধতিটি বিশেষভাবে সাজেস্ট করা হয়, যেমন Firebase App Hosting, Cloud Run, App Engine এবং Cloud Functions for Firebase।

Realtime Database, Cloud Storage বা Cloud Functions-এর মতো পরিষেবার জন্য ঐচ্ছিকভাবে ইনিশিয়ালাইজেশন বিকল্প নির্দিষ্ট করতে, FIREBASE_CONFIG এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন। FIREBASE_CONFIG ভেরিয়েবলের কন্টেন্ট { দিয়ে শুরু হলে, এটি JSON অবজেক্ট হিসেবে পার্স করা হবে। অন্যথায়, SDK ধরে নেয় যে স্ট্রিংটি হল বিকল্প সহ JSON ফাইলের পাথ।

Node.js

const app = initializeApp();

জাভা

FirebaseApp.initializeApp();

Python

default_app = firebase_admin.initialize_app()

Go

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

C#

FirebaseApp.Create();

Dart (পরীক্ষামূলক)

final admin = FirebaseApp.initializeApp();

এটি শুরু হয়ে গেলে, আপনি Admin SDK ব্যবহার করে নিম্নলিখিত ধরনের কাজ করতে পারবেন:

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

Python

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

Go

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)
}

C#

FirebaseApp.Create(new AppOptions()
{
    Credential = CredentialFactory.FromFile<UserCredential>("path/to/refreshToken.json").ToGoogleCredential(),
});

Google-এর নয় এমন এনভায়রনমেন্টে SDK শুরু করা

আপনি যদি Google-এর নয় এমন সার্ভার এনভায়রনমেন্টে কাজ করেন যেখানে ডিফল্ট ক্রেডেনশিয়াল লুক-আপ সম্পূর্ণ অটোমেটিক করা যায় না, তাহলে আপনি এক্সপোর্ট করা পরিষেবা অ্যাকাউন্ট কী ফাইলের মাধ্যমে SDK ইনিশিয়ালাইজ করতে পারবেন।

Firebase প্রোজেক্ট Google পরিষেবা অ্যাকাউন্টকে সাপোর্ট করে, যা আপনি অ্যাপ সার্ভার বা বিশ্বস্ত এনভায়রনমেন্ট থেকে Firebase সার্ভার API কল করার জন্য ব্যবহার করতে পারবেন। আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করেন বা আপনার অ্যাপ্লিকেশন অন-প্রিমিসেস ডিপ্লয় করেন, তাহলে আপনি সার্ভার অনুরোধ অনুমোদন করার জন্য এই পরিষেবা অ্যাকাউন্ট ব্যবহার করে প্রাপ্ত ক্রেডেনশিয়াল ব্যবহার করতে পারবেন।

আপনি Firebase প্রোজেক্টের জন্য সব পরিষেবা অ্যাকাউন্ট সেটিংস > পরিষেবা অ্যাকাউন্ট ট্যাব থেকে দেখতে পারবেন।

কোনও পরিষেবা অ্যাকাউন্ট যাচাইকরণ করতে এবং Firebase পরিষেবা অ্যাক্সেস করার জন্য এটিকে অনুমোদন করতে, আপনাকে অবশ্যই JSON ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে।

আপনার পরিষেবা অ্যাকাউন্টের জন্য ব্যক্তিগত কী ফাইল তৈরি করতে:

  1. Firebase কনসোলে, সেটিংস > পরিষেবা অ্যাকাউন্ট ট্যাব বিকল্পে যান।

  2. নতুন ব্যক্তিগত কী তৈরি করুন বিকল্পে ক্লিক করুন, তারপর কী তৈরি করুন বিকল্পে ক্লিক করে কনফার্ম করুন।

  3. 'কী' সহ JSON ফাইল নিরাপদে স্টোর করুন।

পরিষেবা অ্যাকাউন্টের মাধ্যমে অনুমোদন করার সময়, আপনার অ্যাপ্লিকেশনে ক্রেডেনশিয়াল প্রদান করার জন্য আপনার কাছে দুটি বিকল্প থাকে। আপনি হয় GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবেল সেট করতে পারেন অথবা কোডে পরিষেবা অ্যাকাউন্ট 'কী'-এর পাথ স্পষ্টভাবে পাস করতে পারেন। প্রথম বিকল্পটি বেশি সুরক্ষিত এবং এটি ব্যবহার করার জন্য বিশেষভাবে সাজেস্ট করা হচ্ছে।

এনভায়রনমেন্ট ভেরিয়েবল সেট করতে:

আপনার পরিষেবা অ্যাকাউন্টের 'কী' আছে এমন JSON ফাইলের ফাইল পাথে এনভায়রনমেন্ট ভেরিয়েবেল GOOGLE_APPLICATION_CREDENTIALS সেট করুন। এই ভেরিয়েবল শুধুমাত্র আপনার বর্তমান শেল সেশনের ক্ষেত্রে প্রযোজ্য, তাই আপনি নতুন সেশন খুললে, ভেরিয়েবল আবার সেট করুন।

Linux বা macOS

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

Python

default_app = firebase_admin.initialize_app()

Go

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

C#

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

Python

# 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(...)

Go

// 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)
}

C#

// 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 প্রোজেক্টের 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);

Python

# 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)

Go

// 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)
}

C#

// 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 Application Default Credentials সহ Google Compute Engine VM ব্যবহার করেন, তাহলে সঠিক অ্যাক্সেস স্কোপ সেট করতে ভুলবেন না। Realtime Database এবং Authentication-এর জন্য, আপনার এমন স্কোপ প্রয়োজন যা 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"

gcloud ব্যবহারকারীর ক্রেডেনশিয়াল দিয়ে পরীক্ষা করুন

gcloud auth application-default login রান করার মাধ্যমে পাওয়া Google Application Default Credentials-এর সাহায্যে লোকালি Admin SDK পরীক্ষা করার সময়, নিম্নলিখিত কারণে Firebase Authentication ব্যবহার করতে অতিরিক্ত পরিবর্তন করতে হবে:

  • Firebase Authentication gcloud OAuth ক্লায়েন্ট আইডি ব্যবহার করে তৈরি করা gcloud এন্ড ইউজার ক্রেডেনশিয়াল গ্রহণ করে না।
  • এই ধরনের ব্যবহারকারীর ক্রেডেনশিয়ালের জন্য ইনিশিয়ালাইজ করার সময় Firebase Authentication-এ প্রোজেক্ট আইডি দিতে হবে।

বিকল্প হিসেবে, আপনি নিজের OAuth 2.0 ক্লায়েন্ট আইডি ব্যবহার করে gcloud-এ Google অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল তৈরি করতে পারেন। OAuth ক্লায়েন্ট আইডিকে ডেস্কটপ অ্যাপ অ্যাপ্লিকেশন টাইপ হতে হবে।

gcloud

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

Python

app_options = {'projectId': '<FIREBASE_PROJECT_ID>'}
default_app = firebase_admin.initialize_app(options=app_options)

Go

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)
}

C#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
    ProjectId = "<FIREBASE_PROJECT_ID>",
});

পরবর্তী ধাপ

Firebase সম্পর্কে জানুন:

আপনার অ্যাপে Firebase ফিচার যোগ করুন:

  • Cloud Functions-এর সাহায্যে সার্ভারলেস ব্যাকএন্ড লিখুন।
  • Realtime Database-এর সাথে স্টোর সংক্রান্ত তথ্য বা Cloud Storage-এর সাথে ব্লব ডেটা।
  • Cloud Messaging-এর সাথে বিজ্ঞপ্তি পান।