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

অ্যাডমিন SDK হল সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধাপ্রাপ্ত পরিবেশ থেকে ফায়ারবেসের সাথে ইন্টারঅ্যাক্ট করতে দেয় যেমন:

  • সম্পূর্ণ অ্যাডমিন সুবিধা সহ রিয়েলটাইম ডেটাবেস ডেটা পড়ুন এবং লিখুন।
  • Firebase ক্লাউড মেসেজিং সার্ভার প্রোটোকলের জন্য একটি সহজ, বিকল্প পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিকভাবে Firebase ক্লাউড মেসেজিং বার্তা পাঠান।
  • ফায়ারবেস প্রমাণীকরণ টোকেন তৈরি এবং যাচাই করুন।
  • আপনার ফায়ারবেস প্রকল্পগুলির সাথে যুক্ত ক্লাউড স্টোরেজ বাকেট এবং ক্লাউড ফায়ারস্টোর ডেটাবেসের মতো Google ক্লাউড সংস্থানগুলি অ্যাক্সেস করুন৷
  • ব্যবহারকারীর ডেটা খোঁজা বা প্রমাণীকরণের জন্য ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তন করার মতো জিনিসগুলি করতে আপনার নিজস্ব সরলীকৃত অ্যাডমিন কনসোল তৈরি করুন৷

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

এখানে একটি বৈশিষ্ট্য ম্যাট্রিক্স রয়েছে যা দেখায় যে ফায়ারবেস বৈশিষ্ট্যগুলি প্রতিটি ভাষায় সমর্থিত:

বৈশিষ্ট্য Node.js জাভা পাইথন যাওয়া সি#
কাস্টম টোকেন মিন্টিং
আইডি টোকেন ভেরিফিকেশন
ইউজার ম্যানেজমেন্ট
কাস্টম দাবি সহ অ্যাক্সেস নিয়ন্ত্রণ করুন
রিফ্রেশ টোকেন প্রত্যাহার
ব্যবহারকারীদের আমদানি করুন
সেশন কুকি ম্যানেজমেন্ট
ইমেল অ্যাকশন লিঙ্ক তৈরি করা হচ্ছে
SAML/OIDC প্রদানকারী কনফিগারেশন পরিচালনা করা
মাল্টি-টেনেন্সি সমর্থন
রিয়েলটাইম ডাটাবেস *
ফায়ারবেস ক্লাউড মেসেজিং
FCM মাল্টিকাস্ট
FCM বিষয় সদস্যতা পরিচালনা করুন
মেঘ স্টোরেজ
ক্লাউড ফায়ারস্টোর
ক্লাউড টাস্কের সাথে সারিবদ্ধ ফাংশন
প্রকল্প ব্যবস্থাপনা
নিরাপত্তা বিধি
এমএল মডেল ম্যানেজমেন্ট
ফায়ারবেস রিমোট কনফিগারেশন
ফায়ারবেস অ্যাপ চেক
ফায়ারবেস এক্সটেনশন

এই ব্যবহারের জন্য অ্যাডমিন SDK ইন্টিগ্রেশন সম্পর্কে আরও জানতে, সংশ্লিষ্ট রিয়েলটাইম ডেটাবেস , FCM , প্রমাণীকরণ , রিমোট কনফিগ , এবং ক্লাউড স্টোরেজ ডকুমেন্টেশন দেখুন৷ এই পৃষ্ঠার বাকি অংশ অ্যাডমিন SDK-এর জন্য মৌলিক সেটআপের উপর ফোকাস করে।

পূর্বশর্ত

  • আপনার একটি সার্ভার অ্যাপ্লিকেশন আছে তা নিশ্চিত করুন.

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

    • অ্যাডমিন Node.js SDK — Node.js 14+ (Node.js 16+ সুপারিশ করুন)
      Node.js 14 সমর্থন বাতিল করা হয়েছে।
    • অ্যাডমিন জাভা SDK — Java 8+
    • অ্যাডমিন পাইথন SDK — পাইথন 3.7+ (পাইথন 3.8+ সুপারিশ করুন)
      Python 3.7 সমর্থন বন্ধ করা হয়েছে।
    • অ্যাডমিন Go SDK — Go 1.17+
    • অ্যাডমিন .NET SDK — .NET ফ্রেমওয়ার্ক 4.6.1+ বা .NET কোর 2.0+ এর জন্য .NET স্ট্যান্ডার্ড 2.0

একটি Firebase প্রকল্প এবং পরিষেবা অ্যাকাউন্ট সেট আপ করুন৷

Firebase অ্যাডমিন 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.2.0'
}

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

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

পাইথন

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

sudo pip install firebase-admin

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

pip install --user firebase-admin

যাওয়া

go install ইউটিলিটি ব্যবহার করে Go Admin SDK ইনস্টল করা যেতে পারে:

# Install the latest version:
go install firebase.google.com/go/v4@latest

# Or install a specific version:
go install firebase.google.com/go/v4@4.13.0

সি#

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

Install-Package FirebaseAdmin -Version 2.4.0

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

dotnet add package FirebaseAdmin --version 2.4.0

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

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

SDK আরম্ভ করুন

একবার আপনি একটি ফায়ারবেস প্রকল্প তৈরি করলে, আপনি Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে SDK শুরু করতে পারেন। যেহেতু ডিফল্ট শংসাপত্রের সন্ধান Google পরিবেশে সম্পূর্ণরূপে স্বয়ংক্রিয়, পরিবেশের ভেরিয়েবল বা অন্যান্য কনফিগারেশন সরবরাহ করার প্রয়োজন নেই, তাই SDK শুরু করার এই পদ্ধতিটি ক্লাউড রান, অ্যাপ ইঞ্জিন এবং ক্লাউড ফাংশনগুলির মতো Google পরিবেশে চলমান অ্যাপ্লিকেশনগুলির জন্য দৃঢ়ভাবে সুপারিশ করা হয়৷

রিয়েলটাইম ডেটাবেস, ক্লাউড স্টোরেজ, বা ক্লাউড ফাংশনগুলির মতো পরিষেবাগুলির জন্য প্রারম্ভিক বিকল্পগুলি ঐচ্ছিকভাবে নির্দিষ্ট করতে, 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();

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

একটি OAuth 2.0 রিফ্রেশ টোকেন ব্যবহার করে৷

অ্যাডমিন 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 ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে৷

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

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

  2. জেনারেট নিউ প্রাইভেট কী ক্লিক করুন, তারপর জেনারেট কী ক্লিক করে নিশ্চিত করুন।

  3. কী আছে এমন 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;

কিছু ব্যবহারের ক্ষেত্রে আপনাকে একই সময়ে একাধিক অ্যাপ তৈরি করতে হবে। উদাহরণস্বরূপ, আপনি একটি ফায়ারবেস প্রকল্পের রিয়েলটাইম ডেটাবেস থেকে ডেটা পড়তে এবং অন্য প্রকল্পের জন্য কাস্টম টোকেন পড়তে চাইতে পারেন। অথবা আপনি পৃথক শংসাপত্র সহ দুটি অ্যাপ প্রমাণীকরণ করতে চাইতে পারেন। 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);

রিয়েলটাইম ডাটাবেস এবং প্রমাণীকরণের জন্য স্কোপ সেট করুন

আপনি যদি রিয়েলটাইম ডেটাবেস বা প্রমাণীকরণের জন্য Google অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র সহ একটি Google Compute Engine VM ব্যবহার করেন, তবে সঠিক অ্যাক্সেসের সুযোগগুলিও সেট করতে ভুলবেন না। রিয়েলটাইম ডেটাবেস এবং প্রমাণীকরণের জন্য, আপনার 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 অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে স্থানীয়ভাবে অ্যাডমিন SDK পরীক্ষা করার সময়, নিম্নলিখিত কারণে Firebase প্রমাণীকরণ ব্যবহার করার জন্য অতিরিক্ত পরিবর্তন প্রয়োজন:

  • ফায়ারবেস প্রমাণীকরণ gcloud OAuth ক্লায়েন্ট আইডি ব্যবহার করে তৈরি করা gcloud শেষ ব্যবহারকারীর শংসাপত্র গ্রহণ করে না।
  • ফায়ারবেস প্রমাণীকরণের জন্য এই ধরনের শেষ ব্যবহারকারীর শংসাপত্রের জন্য প্রাথমিককরণের সময় প্রজেক্ট আইডি প্রদান করতে হবে।

একটি সমাধান হিসাবে, আপনি আপনার নিজস্ব 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>",
});

পরবর্তী পদক্ষেপ

ফায়ারবেস সম্পর্কে জানুন:

আপনার অ্যাপে Firebase বৈশিষ্ট্য যোগ করুন: