שימוש ב-Admin SDK עם Data Connect

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

מה השלב הבא?