Firebase Admin SDK คือชุดของไลบรารีเซิร์ฟเวอร์ที่ให้คุณโต้ตอบด้วย Firebase จากสภาพแวดล้อมที่ได้รับสิทธิ์เพื่อดำเนินการต่างๆ เช่น ทำการค้นหา และการกลายพันธุ์ในบริการ Firebase Data Connect สำหรับการจัดการข้อมูลจำนวนมาก และการดำเนินการอื่นๆ ที่มีสิทธิ์ในระดับสูงขึ้น
Admin SDK มี API สำหรับเรียกใช้การดำเนินการในทั้ง 2 แบบ โหมดอ่าน/เขียน และโหมดอ่านอย่างเดียว การดำเนินการแบบอ่านอย่างเดียวช่วยให้คุณมั่นใจได้ว่าจะใช้ฟังก์ชันการดูแลระบบที่แก้ไขข้อมูลในฐานข้อมูลไม่ได้
การตั้งค่า 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 ช่วยให้คุณลดความซับซ้อนของ เนื่องจากไม่สนใจการตรวจสอบสิทธิ์และการให้สิทธิ์สำหรับโฟลว์ภายใน
Firebase Admin SDK จะเชื่อมต่อกับData Connect simulatorsโดยอัตโนมัติเมื่อตั้งค่าตัวแปรสภาพแวดล้อม DATA_CONNECT_EMULATOR_HOST
ดังนี้
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
ดูข้อมูลเพิ่มเติมได้ที่
- คำแนะนำสำหรับการเริ่มต้นใช้งานข้อมูลในการพัฒนาซอฟต์แวร์ในเครื่อง
- เอกสารประกอบเกี่ยวกับโปรแกรมจำลอง Data Connect
ใช้ Use Case ทั่วไป
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
- ใช้ Firebase CLI และคอนโซล Google Cloud สำหรับการดำเนินการจัดการโปรเจ็กต์อื่นๆ เช่น การจัดการสคีมาและคอนเน็กเตอร์ รวมถึงการจัดการบริการและฐานข้อมูล