Firebase Admin SDK היא קבוצה של ספריות שרת שמאפשרות לבצע פעולות ב-Firebase מסביבות בעלות הרשאות, כמו ביצוע שאילתות ומוטציות בשירות Firebase Data Connect לניהול נתונים בכמות גדולה ופעולות אחרות עם הרשאות מוגברות.
Admin SDK מספק ממשק API לקריאה להפעלת פעולות גם במצב קריאה/כתיבה וגם במצב קריאה בלבד. בעזרת הפעולות לקריאה בלבד, תוכלו ליישם פונקציות ניהוליות שלא יכולות לשנות נתונים במסדי הנתונים שלכם.
הגדרת Admin SDK
כדי להתחיל להשתמש ב-Firebase Data Connect בשרת, קודם צריך להתקין ולהגדיר את Admin SDK ל-Node.js.
איך מאתחלים את Admin SDK בסקריפטים
כדי לאתחל את ה-SDK, מייבאים את התוספים Data Connect ומצהירים על המיקום ומזהה השירות של הפרויקט.
import { initializeApp } from 'firebase-admin/app';
import { getDataConnect } from 'firebase-admin/data-connect';
// If you'd like to use OAuth2 flows and other credentials to log in,
// visit https://firebase.google.com/docs/admin/setup#initialize-sdk
// for alternative ways to initialize the SDK.
const app = initializeApp();
const dataConnect = getDataConnect({
serviceId: 'serviceId',
location: 'us-west2'
});
תכנון שאילתות ומוטציות לשימוש עם Admin SDK
אפשר להשתמש ב-Admin SDK כדי לבדוק פעולות Data Connect, בהתאם לשיקולים הבאים.
הסבר על ה-SDK וההוראות הפעולה של @auth(level: NO_ACCESS)
מכיוון ש-Admin SDK פועל עם הרשאות, הוא יכול להריץ את כל השאילתות והמוטציות שלכם, ללא קשר לרמות הגישה שהוגדרו באמצעות הוראות @auth
, כולל הרמה NO_ACCESS
.
אם אתם מארגנים את השאילתות והמוטציות הניהוליות בקובצי המקור .gql
לצד פעולות הלקוח, כדי לייבא אותן לסקריפטים ניהוליים, מומלץ ב-Firebase לסמן את הפעולות הניהוליות ללא רמת גישה להרשאה, או להגדיר אותן כ-NO_ACCESS
באופן מפורש יותר. כך אפשר למנוע ביצוע פעולות כאלה מלקוחות או בהקשרים אחרים ללא הרשאות.
שימוש ב-SDK עם אמולטור Data Connect
בסביבות של אב טיפוס ובדיקות, כדאי לבצע הטמעת נתונים ופעולות אחרות על נתונים מקומיים. בעזרת Admin SDK תוכלו לפשט את תהליכי העבודה, כי הוא מתעלם מאימות ומהרשאה בתהליכים מקומיים.
ערכות ה-SDK של Firebase לאדמינים מתחברות באופן אוטומטי למהדר Data Connect כשמשנים את משתנה הסביבה DATA_CONNECT_EMULATOR_HOST
:
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
מידע נוסף זמין בדפים הבאים:
הטמעת תרחישים נפוצים לדוגמה
Admin SDK מסופק לפעולות בעלות הרשאות על הנתונים הקריטיים שלכם.
ה-API של Data Connect מורכב מממשק executeGraphql
לקריאה וכתיבה ומממשק executeGraphqlRead
לקריאה בלבד.
ניהול נתוני משתמשים
תרחיש לדוגמה לשימוש ב-Admin SDK הוא ניהול נתוני משתמשים.
interface UserData {
user: {
id: string;
name: string;
};
}
export interface UserVariables {
id: string;
}
const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };
// user can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";
//executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);
//executeGraphqlRead (similar to above but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
מה השלב הבא?
- בודקים את ה-API של Admin SDK.
- אפשר להשתמש ב-CLI של Firebase ובמסוף Google Cloud לביצוע פעולות ניהול אחרות של פרויקטים, כמו ניהול סכימות ומחברים וניהול שירותים ומסדי נתונים.