Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

Firebase Admin SDK را به سرور خود اضافه کنید

Admin SDK به شما امکان می دهد با Firebase از محیط های ممتاز ارتباط برقرار کنید و اقدامات زیر را انجام دهید:

  • داده های پایگاه داده در زمان واقعی را با امتیازات کامل مدیر بخوانید و بنویسید.
  • با استفاده از رویکرد ساده و جایگزین پروتکل های سرور Firebase Cloud Messaging ، پیام ها را به صورت برنامه نویسی ارسال کنید.
  • نشانه های تأیید Firebase را ایجاد و تأیید کنید.
  • به منابع Google Cloud Platform مانند سطل Cloud Storage و پایگاه داده Cloud Firestore مرتبط با پروژه های Firebase خود دسترسی پیدا کنید.
  • برای انجام کارهایی مانند جستجوی داده های کاربر یا تغییر آدرس ایمیل کاربر برای احراز هویت ، کنسول سرپرستی ساده خود را ایجاد کنید.

اگر شما علاقه مند به استفاده از Node.js SDK به عنوان مشتری برای دسترسی کاربر نهایی هستید (به عنوان مثال ، در دسک تاپ Node.js یا برنامه اینترنت اشیا) ، در مقابل دسترسی مدیر از یک محیط ممتاز (مانند یک سرور) ، شما در عوض باید دستورالعمل های راه اندازی SDK مشتری JavaScript را دنبال کنید .

در اینجا یک ماتریس ویژگی وجود دارد که ویژگی های Firebase را در هر زبان پشتیبانی می کند:

ویژگی Node.js جاوا پایتون برو C #
سفارشی سازی نشانه
تأیید شناسه شناسه
مدیریت کاربر
کنترل دسترسی با ادعاهای سفارشی
تازه کردن Token Revocation
وارد کردن کاربران
جلسه مدیریت کوکی ها
ایجاد پیوندهای اقدام ایمیل
مدیریت تنظیمات ارائه دهنده SAML / OIDC
پشتیبانی از چند اجاره
پایگاه داده بیدرنگ *
Firebase ابر پیام
FCM Multicast
اشتراک های موضوع FCM را مدیریت کنید
فضای ذخیره ابری
Cloud Firestore
مدیریت پروژه
قوانین امنیتی
مدیریت مدل ML
پیکربندی از راه دور Firebase

برای کسب اطلاعات بیشتر در مورد ادغام Admin SDK برای این موارد ، به اسناد مربوطه Realtime Database ، FCM ، Authentication و Cloud Storage مراجعه کنید . بقیه این صفحه بر روی تنظیمات اساسی برای Admin SDK تمرکز دارد.

پیش نیازها

  • مطمئن شوید که یک برنامه سرور دارید.

  • بسته به اینکه از Admin SDK که استفاده می کنید مطمئن شوید که سرور شما موارد زیر را اجرا می کند:

    • Admin Node.js SDK - Node.js 10.10.0+
    • Admin Java SDK - Java 7+ (Java 8+ را توصیه کنید)
      پشتیبانی از جاوا 7 منسوخ شده است.
    • Admin Python SDK - پایتون 3.5+
    • Admin Go SDK - برو 1.11+
    • مدیر .NET SDK - .NET Framework 4.5+ یا .Net Core 1.5+

یک حساب کاربری و پروژه Firebase تنظیم کنید

برای استفاده از Firebase Admin SDK ، به موارد زیر نیاز دارید:

  • یک پروژه Firebase
  • یک حساب سرویس برای برقراری ارتباط با Firebase
  • یک فایل پیکربندی با اعتبار حساب سرویس شما

اگر قبلاً پروژه Firebase ندارید ، باید یک مورد را در کنسول Firebase ایجاد کنید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase ، از پروژه های Firebase درک کنید.

SDK را اضافه کنید

اگر در حال راه اندازی یک پروژه جدید هستید ، باید SDK را برای زبان مورد نظر خود نصب کنید.

Node.js

Firebase Admin Node.js SDK در npm در دسترس است. اگر قبلاً فایل package.json ندارید ، از طریق npm init یک پرونده ایجاد کنید. بعد ، بسته npm firebase-admin نصب کنید و آن را در package.json خود ذخیره کنید. package.json :

$ npm install firebase-admin --save

برای استفاده از ماژول در برنامه شما، require آن را از هر فایل جاوا اسکریپت:

var admin = require('firebase-admin');

اگر از ES2015 استفاده می کنید ، می توانید به جای آن ماژول را import کنید:

import * as admin from 'firebase-admin';

جاوا

Firebase Admin Java SDK در مخزن مرکزی Maven منتشر می شود. برای نصب کتابخانه ، آن را به عنوان یک وابستگی در پرونده build.gradle خود build.gradle کنید:

dependencies {
  implementation 'com.google.firebase:firebase-admin:7.0.1'
}

اگر از Maven برای ساخت برنامه خود استفاده می کنید ، می توانید وابستگی زیر را به pom.xml خود اضافه کنید:

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

پایتون

Firebase Admin Python SDK از طریق pip در دسترس است. از طریق sudo می توانید کتابخانه را برای همه کاربران نصب کنید:

$ sudo pip install firebase-admin

یا می توانید با عبور از پرچم --user کتابخانه را فقط برای کاربر فعلی --user :

$ pip install --user firebase-admin

برو

Go Admin SDK را می توان با استفاده از برنامه go get نصب کرد:

# Install as a module dependency
$ go get firebase.google.com/go/v4

# Install to $GOPATH
$ go get firebase.google.com/go

C #

.NET Admin SDK با استفاده از مدیر بسته NET قابل نصب است:

$ Install-Package FirebaseAdmin -Version 1.17.1

متناوباً ، آن را با استفاده از ابزار خط فرمان dotnet نصب کنید:

$ dotnet add package FirebaseAdmin --version 1.17.1

یا می توانید آن را با اضافه کردن ورودی مرجع بسته زیر به پرونده .csproj خود نصب کنید:

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

شروع SDK

هنگامی که یک پروژه Firebase ایجاد کردید ، می توانید SDK را با یک استراتژی مجوز که فایل حساب سرویس شما را همراه با اعتبارنامه پیش فرض Google Application ترکیب می کند ، مقداردهی اولیه کنید.

پروژه های Firebase از حساب های سرویس Google پشتیبانی می کنند ، که می توانید از آنها برای فراخوانی API های سرور Firebase از سرور برنامه یا محیط معتبر خود استفاده کنید. اگر در حال توسعه کد به صورت محلی هستید یا برنامه خود را در محل مستقر می کنید ، می توانید از اعتبارنامه های به دست آمده از طریق این حساب سرویس برای تأیید درخواست های سرور استفاده کنید.

برای تأیید اعتبار یک حساب سرویس و تأیید اجازه دسترسی به خدمات Firebase ، باید یک فایل کلید خصوصی در قالب JSON ایجاد کنید.

برای ایجاد یک پرونده کلید خصوصی برای حساب سرویس خود:

  1. در کنسول Firebase ، تنظیمات> حسابهای سرویس را باز کنید .

  2. روی ایجاد کلید خصوصی جدید کلیک کنید ، سپس با کلیک روی ایجاد کلید تأیید کنید .

  3. فایل JSON حاوی کلید را به صورت امن ذخیره کنید.

هنگام مجوز دادن از طریق حساب کاربری ، دو گزینه برای ارائه اعتبارنامه به برنامه خود دارید. شما می توانید متغیر محیط GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید ، یا می توانید مسیر را به کلید حساب سرویس سرویس به صورت کد عبور دهید. اولین گزینه ایمن تر است و اکیداً توصیه می شود.

برای تنظیم متغیر محیط:

متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را در مسیر پرونده فایل JSON که حاوی کلید حساب سرویس شماست تنظیم کنید. این متغیر فقط برای جلسه شل فعلی شما اعمال می شود ، بنابراین اگر جلسه جدیدی را باز کردید ، دوباره متغیر را تنظیم کنید.

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

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

جاوا

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

پایتون

default_app = firebase_admin.initialize_app()

برو

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

C #

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});

با استفاده از رمز بازخوانی OAuth 2.0

Admin SDK همچنین یک اعتبارنامه را فراهم می کند که به شما امکان می دهد با رمز بازخوانی Google OAuth2 احراز هویت کنید:

Node.js

var refreshToken; // Get refresh token from OAuth2 flow

admin.initializeApp({
  credential: admin.credential.refreshToken(refreshToken),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

جاوا

FileInputStream refreshToken = new FileInputStream("path/to/refreshToken.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(refreshToken))
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

پایتون

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

برو

opt := option.WithCredentialsFile("path/to/refreshToken.json")
config := &firebase.Config{ProjectID: "my-project-id"}
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

C #

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.FromFile("path/to/refreshToken.json"),
});

بدون پارامتر شروع به کار کنید

SDK همچنین می تواند بدون پارامتر مقداردهی اولیه شود. در این حالت ، SDK از اعتبارنامه پیش فرض برنامه Google استفاده می کند و گزینه هایی را از متغیر محیط FIREBASE_CONFIG می خواند. اگر محتوای متغیر FIREBASE_CONFIG با یک { شروع شود ، به عنوان یک شی JSON تجزیه می شود. در غیر این صورت SDK فرض می کند که رشته نام یک فایل JSON است که شامل گزینه ها است.

Node.js

// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp();

جاوا

FirebaseApp.initializeApp();

پایتون

default_app = firebase_admin.initialize_app()

برو

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

C #

FirebaseApp.Create();

پس از راه اندازی اولیه ، می توانید از Admin SDK برای انجام انواع زیر استفاده کنید:

چندین برنامه را ابتدا شروع کنید

در اکثر موارد ، فقط باید یک برنامه پیش فرض منفرد و اولیه را تنظیم کنید. به دو روش معادل می توانید به خدمات خارج از آن برنامه دسترسی داشته باشید:

Node.js

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

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

// Retrieve services via the defaultApp variable...
var defaultAuth = defaultApp.auth();
var defaultDatabase = defaultApp.database();

// ... or use the equivalent shorthand notation
defaultAuth = admin.auth();
defaultDatabase = admin.database();

جاوا

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

System.out.println(defaultApp.getName());  // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
FirebaseAuth defaultAuth = FirebaseAuth.getInstance(defaultApp);
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.getInstance();
defaultDatabase = FirebaseDatabase.getInstance();

پایتون

# Import the Firebase service
from firebase_admin import auth

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)
print(default_app.name)  # "[DEFAULT]"

# Retrieve services via the auth package...
# auth.create_custom_token(...)

برو

// Initialize 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;

برخی موارد استفاده شما را ملزم به ایجاد همزمان چندین برنامه می کند. به عنوان مثال ، ممکن است بخواهید داده های پایگاه داده Realtime یک پروژه Firebase را بخوانید و نشانه های سفارشی را برای پروژه دیگری ضرب کنید. یا ممکن است بخواهید دو برنامه را با اعتبار جداگانه احراز هویت کنید. Firebase SDK به شما امکان می دهد همزمان چندین برنامه ایجاد کنید ، هر کدام دارای اطلاعات پیکربندی خاص خود هستند.

Node.js

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

// Initialize another app with a different config
var otherApp = admin.initializeApp(otherAppConfig, 'other');

console.log(admin.app().name);  // '[DEFAULT]'
console.log(otherApp.name);     // 'other'

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = admin.auth();
var defaultDatabase = admin.database();

// Use the otherApp variable to retrieve the other app's services
var otherAuth = otherApp.auth();
var otherDatabase = otherApp.database();

جاوا

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

// Initialize another app with a different config
FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other");

System.out.println(defaultApp.getName());  // "[DEFAULT]"
System.out.println(otherApp.getName());    // "other"

// Use the shorthand notation to retrieve the default app's services
FirebaseAuth defaultAuth = FirebaseAuth.getInstance();
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance();

// Use the otherApp variable to retrieve the other app's services
FirebaseAuth otherAuth = FirebaseAuth.getInstance(otherApp);
FirebaseDatabase otherDatabase = FirebaseDatabase.getInstance(otherApp);

پایتون

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)

#  Initialize another app with a different config
other_app = firebase_admin.initialize_app(cred, name='other')

print(default_app.name)    # "[DEFAULT]"
print(other_app.name)      # "other"

# Retrieve default services via the auth package...
# auth.create_custom_token(...)

# Use the `app` argument to retrieve the other app's services
# auth.create_custom_token(..., app=other_app)

برو

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

// Initialize another app with a different config
opt := option.WithCredentialsFile("service-account-other.json")
otherApp, err := firebase.NewApp(context.Background(), nil, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access Auth service from default app
defaultClient, err := defaultApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

// Access auth service from other app
otherClient, err := otherApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

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

محدوده ها را برای پایگاه داده و تأیید اعتبار بیدرنگ تنظیم کنید

اگر از Google Compute Engine VM با اعتبارنامه پیش فرض برنامه کاربردی Google برای پایگاه داده یا احراز هویت بیدرنگ استفاده می کنید ، اطمینان حاصل کنید که دامنه های دسترسی مناسب را نیز تنظیم کنید. برای پایگاه داده و احراز هویت بیدرنگ ، به دامنه هایی نیاز دارید که به userinfo.email و یا cloud-platform یا firebase.database ختم userinfo.email . برای بررسی دامنه های دسترسی موجود و تغییر آنها ، دستورات زیر را با استفاده از gcloud اجرا کنید .

gcloud

# Check the existing access scopes
gcloud compute instances describe [INSTANCE_NAME] --format json

# The above command returns the service account information. For example:
  "serviceAccounts": [
   {
    "email": "your.gserviceaccount.com",
    "scopes": [
     "https://www.googleapis.com/auth/cloud-platform",
     "https://www.googleapis.com/auth/userinfo.email"
     ]
    }
  ],

# Stop the VM, then run the following command, using the service account
# that gcloud returned when you checked the scopes.

gcloud compute instances set-service-account [INSTANCE_NAME] --service-account "your.gserviceaccount.com" --scopes "https://www.googleapis.com/auth/firebase.database,https://www.googleapis.com/auth/userinfo.email"

مراحل بعدی

درباره Firebase بیاموزید:

ویژگی های Firebase را به برنامه خود اضافه کنید: