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