Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

הוסף את ה- SDK של מנהל ה Firebase לשרת שלך

ה- Admin SDK הוא קבוצה של ספריות שרתים שמאפשרות לך לקיים אינטראקציה עם Firebase מסביבות מיוחדות כדי לבצע פעולות כמו:

  • קרא וכתב נתוני מסדי נתונים בזמן אמת עם הרשאות מנהל מלאות.
  • שלח תוכנתית הודעות של Firebase Cloud Cloud באמצעות גישה חלופית פשוטה לפרוטוקולי שרת ההודעות של Firebase Cloud.
  • צור ואמת את אסימוני האימות של Firebase.
  • גש למשאבי Google Cloud כמו דלי אחסון בענן ומסדי נתונים של Cloud Firestore המשויכים לפרויקטים שלך ב- Firebase.
  • צור מסוף ניהול פשוט משלך כדי לבצע דברים כמו לחפש נתוני משתמש או לשנות את כתובת הדוא"ל של המשתמש לצורך אימות.

אם אתה מעוניין להשתמש ב- SDK של Node.js כלקוח לגישה של משתמשי קצה (למשל, בשולחן העבודה Node.js או ביישום IoT), בניגוד לגישה של מנהל מסביבה מיוחסת (כמו שרת), אתה במקום זאת צריך לבצע את ההוראות להגדרת ה- SDK של JavaScript ללקוח .

הנה מטריצת תכונות המציגה אילו תכונות Firebase נתמכות בכל שפה:

תכונה Node.js ג'אווה פִּיתוֹן ללכת C #
מנטה אסימון בהתאמה אישית
אימות אסימון מזהה
ניהול משתמשים
שליטה בגישה עם תביעות מותאמות אישית
רענון ביטול אסימון
ייבא משתמשים
ניהול עוגיות מושב
יצירת קישורי פעולה בדוא"ל
ניהול תצורות ספק SAML / OIDC
תמיכה ברב שכירות
מסד נתונים בזמן אמת *
הודעות ענן של Firebase
Multicast FCM
נהל מנויים בנושא FCM
אחסון בענן
ענן Firestore
ניהול פרוייקט
כללי אבטחה
ניהול מודל ML
תצורה מרחוק של Firebase

למידע נוסף על שילוב Admin SDK לשימושים אלה, עיין בתיעוד המקביל בזמן אמת , FCM , אימות , תצורה מרחוק ואחסון ענן . שאר עמוד זה מתמקד בהתקנה בסיסית עבור ה- SDK של מנהל המערכת.

תנאים מוקדמים

  • וודא שיש לך אפליקציית שרתים.

  • ודא שהשרת שלך מריץ את הפעולות הבאות, תלוי באיזה מנהל מערכת SDK שאתה משתמש:

    • Admin Node.js SDK - Node.js 10.10.0+
    • מנהל Java SDK - Java 7+ (ממליץ על Java 8+)
      התמיכה בג'אווה 7 הוצאה משימוש.
    • Admin Python SDK - Python 3.5+ (ממליץ על Python 3.6+)
    • Admin Go SDK - Go 1.11+
    • מנהל SDK .NET - .NET Framework 4.5+ או .Net Core 1.5+

הגדר פרוייקט Firebase וחשבון שירות

כדי להשתמש ב- SDK של מנהל המערכת של Firebase, תצטרך את הדברים הבאים:

  • פרויקט Firebase
  • חשבון שירות לתקשורת עם Firebase
  • קובץ תצורה עם אישורי חשבון השירות שלך

אם עדיין אין לך פרויקט Firebase, עליך ליצור פרויקט במסוף Firebase . בקר ב- Understand Firebase Projects למידע נוסף על פרויקטים של Firebase.

הוסף את ה- SDK

אם אתה מגדיר פרויקט חדש, עליך להתקין את ה- SDK עבור השפה שבחרת.

Node.js

ה- Firkase Admin Node.js SDK זמין ב- npm. אם עדיין אין לך קובץ package.json , צור קובץ באמצעות npm init . לאחר מכן, התקן את חבילת npm firebase-admin ושמור אותה בחבילה שלך. package.json :

$ npm install firebase-admin --save

כדי להשתמש במודול ביישום שלך, require ממנו מכל קובץ JavaScript:

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

אם אתה משתמש ב- ES2015, תוכל import את המודול במקום זאת:

import * as admin from 'firebase-admin';

ג'אווה

Firebase Admin Java SDK מתפרסם במאגר המרכזי של Maven. כדי להתקין את הספרייה, הכריז עליה כתלות בקובץ build.gradle שלך:

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

אם אתה משתמש ב- Maven כדי לבנות את היישום שלך, אתה יכול להוסיף את התלות הבאה ל- pom.xml שלך:

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

פִּיתוֹן

ה- Firkase Admin Python SDK זמין באמצעות pip . אתה יכול להתקין את הספרייה לכל המשתמשים באמצעות sudo :

$ sudo pip install firebase-admin

לחלופין, תוכל להתקין את הספרייה רק ​​עבור המשתמש הנוכחי על ידי העברת הדגל --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 2.1.0

לחלופין, התקן אותו באמצעות כלי שורת הפקודה dotnet :

$ dotnet add package FirebaseAdmin --version 2.1.0

לחלופין, תוכל להתקין אותו על ידי הוספת רשומת הפניה לחבילה הבאה לקובץ .csproj שלך:

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

אתחל את ה- SDK

לאחר שיצרת פרויקט Firebase, באפשרותך לאתחל את ה- SDK עם אסטרטגיית הרשאה המשלבת את קובץ חשבון השירות שלך יחד עם אישורי ברירת המחדל של יישום Google .

פרויקטים של Firebase תומכים בחשבונות שירות של גוגל, שבהם תוכלו לקרוא לממשקי API של שרת Firebase משרת האפליקציה או מהסביבה האמינה שלכם. אם אתה מפתח קוד באופן מקומי או פורס את היישום שלך במקום, אתה יכול להשתמש באישורים שהושגו באמצעות חשבון שירות זה כדי לאשר בקשות שרת.

כדי לאמת חשבון שירות ולהעניק לו הרשאה גישה לשירותי Firebase, עליך ליצור קובץ מפתח פרטי בתבנית JSON.

כדי ליצור קובץ מפתח פרטי לחשבון השירות שלך:

  1. במסוף Firebase, פתח את הגדרות> חשבונות שירות .

  2. לחץ על צור מפתח פרטי חדש ולאחר מכן אשר על ידי לחיצה על צור מפתח .

  3. אחסן בצורה מאובטחת את קובץ JSON המכיל את המפתח.

בעת הרשאה באמצעות חשבון שירות, יש לך שתי אפשרויות לספק את האישורים ליישום שלך. תוכל להגדיר את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS , או להעביר במפורש את הנתיב למפתח חשבון השירות בקוד. האפשרות הראשונה מאובטחת יותר ומומלצת בחום.

להגדרת משתנה הסביבה:

הגדר את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS לנתיב הקובץ של קובץ JSON המכיל את מפתח חשבון השירות שלך. משתנה זה חל רק על הפעלת הפגז הנוכחית שלך, אז אם אתה פותח הפעלה חדשה, הגדר שוב את המשתנה.

לינוקס או 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

ה- 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 . מכיוון שחיפוש האישורים המוגדר כברירת מחדל הוא אוטומטי לחלוטין בסביבות Google, ללא צורך לספק משתני סביבה או תצורה אחרת, דרך זו של אינטליזציה של ה- SDK מומלצת מחדש מאוד ליישומים הפועלים על Compute Engine, Kubernetes Engine, App Engine ו- Cloud Functions.

כדי לציין אופציונלי אפשרויות אתחול עבור שירותים כגון מסד נתונים בזמן אמת, אחסון בענן או פונקציות ענן, השתמש FIREBASE_CONFIG הסביבה FIREBASE_CONFIG . אם התוכן של המשתנה 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;

ישנם מקרי שימוש המחייבים ליצור מספר אפליקציות בו זמנית. לדוגמה, ייתכן שתרצה לקרוא נתונים ממסד הנתונים בזמן אמת של פרויקט Firebase אחד ולנטות אסימונים מותאמים אישית עבור פרויקט אחר. לחלופין, ייתכן שתרצה לאמת שתי אפליקציות עם אישורים נפרדים. ה- SDK של Firebase מאפשר לך ליצור מספר אפליקציות בו זמנית, ולכל אחת מהן פרטי תצורה משלהן.

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

הגדר טווחים עבור מסד נתונים ואימות בזמן אמת

אם אתה משתמש ב- VM של Google Compute Engine עם אישורי ברירת מחדל של יישום Google עבור מסד נתונים או אימות בזמן אמת, הקפד להגדיר גם את היקפי הגישה הנכונים. עבור מסד נתונים ואימות בזמן אמת, אתה זקוק להיקפים המסתיימים ב- 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"

הצעדים הבאים

למד אודות Firebase:

הוסף תכונות Firebase לאפליקציה שלך: