Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

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

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

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

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

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

    • מנהל מערכת Node.js SDK - Node.js 12+
    • מנהל Java SDK - Java 7+ (ממליץ על Java 8+)
      התמיכה ב- Java 7 הופסקה.
    • מנהל Python SDK - Python 3.6+
    • Admin Go SDK - עבור 1.11+
    • Admin .NET SDK - .NET Framework 4.5+ או .Net Core 1.5+

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

כדי להשתמש ב- SDK לניהול Firebase, תזדקק לדברים הבאים:

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

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

הוסף את ה- SDK

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

Node.js

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

$ npm install firebase-admin --save

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

const { initializeApp } = require('firebase-admin/app');

אם אתה משתמש ES2015, אתה יכול import את המודול:

import { initializeApp } from 'firebase-admin/app';

ג'אווה

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

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

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

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

פִּיתוֹן

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

$ sudo pip install firebase-admin

לחלופין, אתה יכול להתקין את הספרייה רק המשתמש הנוכחי על ידי העברת --user הדגל:

$ pip install --user firebase-admin

ללכת

ה- SDK Admin Go ניתן להתקין באמצעות 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.2.0

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

$ dotnet add package FirebaseAdmin --version 2.2.0

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

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

אתחל את ה- SDK

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

פרויקטי Firebase לתמוך Google חשבונות השירות , שבו ניתן להשתמש כדי לקרוא APIs שרת 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

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

C#

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

שימוש באסימון רענון של 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)
}

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 משתנית מתחיל עם { זה ינותח כאובייקט 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)
}

C#

FirebaseApp.Create();

לאחר האתחול, תוכל להשתמש ב- SDK לניהול כדי לבצע את סוגי המשימות הבאות:

אתחל מספר אפליקציות

ברוב המקרים, עליך לאתחל אפליקציה אחת בלבד המוגדרת כברירת מחדל. אתה יכול לגשת לשירותים מחוץ לאפליקציה הזו בשתי דרכים שוות ערך:

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

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 אחד ולהטביע אסימונים מותאמים אישית עבור פרויקט אחר. או שתרצה לאמת שתי אפליקציות עם אישורים נפרדים. 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)
}

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"

בדיקה עם אישורי משתמשי קצה של gcloud

כאשר בודקים את SDK של הניהול מקומי עם אישורי ברירת יישום Google מתקבלים על ידי הפעלת gcloud auth application-default login , יש צורך בשינויים נוספים להשתמש Firebase אימות בשל הבא:

  • אימות Firebase אינו מקבל אישורי משתמשי קצה של gcloud שנוצרו באמצעות מזהה לקוח OAuth של gcloud.
  • אימות Firebase מחייב לספק את מזהה הפרויקט בעת האתחול עבור סוג זה של אישורי משתמש קצה.

כפתרון עוקף, אתה יכול ליצור יישום Google אישורי ברירה ב gcloud משלך באמצעות זיהוי הלקוח OAuth 2.0 . מזהה לקוח 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);

פִּיתוֹן

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

C#

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

הצעדים הבאים

למד על Firebase:

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