Firebase Admin SDK 是一組伺服器程式庫,可讓您在特權環境中與 Firebase 互動,執行查詢和變異操作等動作,以便管理大量資料和其他具有特權的作業。Firebase Data Connect
Admin SDK 提供 API,可在讀/寫和唯讀模式下呼叫作業。透過唯讀作業,您可以放心實作無法修改資料庫資料的管理功能。
Admin SDK 設定
如要在伺服器上開始使用 Firebase Data Connect,您必須先安裝並設定 Node.js 適用的 Admin SDK。
在指令碼中初始化 Admin SDK
如要初始化 SDK,請匯入 Data Connect 擴充功能,並宣告專案服務 ID 和位置。
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
。無論如何,這項功能可防止此類作業從用戶端或其他非特權內容中執行。
搭配 Data Connect 模擬器使用 SDK
在原型和測試環境中,對本機資料執行資料播種和其他作業可能會很有幫助。Admin SDK 會忽略本機流程的驗證和授權,因此可簡化工作流程。
設定 DATA_CONNECT_EMULATOR_HOST
環境變數後,Firebase Admin SDK 會自動連線至 Data Connect 模擬器:
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
詳情請參閱:
實作常見用途
Admin SDK 可用於對重要資料執行特權作業。
Data Connect 的 API 包含讀寫 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" } } }
後續步驟
- 查看 Admin SDK 的 API。
- 您可以使用 Firebase CLI 和 Google Cloud 控制台執行其他專案管理作業,例如管理結構定義和連接器,以及管理服務和資料庫。