Firebase Admin SDK adalah serangkaian library server yang dapat Anda gunakan untuk berinteraksi dengan Firebase dari lingkungan istimewa untuk melakukan berbagai tindakan, seperti menjalankan kueri dan mutasi pada layanan Firebase Data Connect untuk pengelolaan data massal dan operasi lainnya dengan hak istimewa yang ditingkatkan.
Admin SDK memberi Anda API untuk memanggil operasi dalam mode baca/tulis dan hanya baca. Dengan operasi hanya baca, Anda dapat merasa tenang saat menerapkan fungsi administratif yang tidak dapat mengubah data di database.
Penyiapan Admin SDK
Untuk mulai menggunakan Firebase Data Connect di server, Anda harus menginstal dan menyiapkan Admin SDK untuk Node.js terlebih dahulu.
Melakukan inisialisasi Admin SDK dalam skrip Anda
Untuk melakukan inisialisasi SDK, impor ekstensi Data Connect dan deklarasikan ID dan lokasi layanan project Anda.
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'
});
Mendesain kueri dan mutasi untuk digunakan dengan Admin SDK
Admin SDK berguna untuk menguji operasi Data Connect, dengan pertimbangan berikut.
Memahami SDK dan perintah operasi @auth(level: NO_ACCESS)
Karena beroperasi dengan hak istimewa, Admin SDK dapat menjalankan kueri dan mutasi apa pun,
terlepas dari tingkat akses yang ditetapkan menggunakan perintah @auth
, termasuk tingkat NO_ACCESS
.
Jika bersama dengan operasi klien, Anda mengatur kueri dan mutasi administrative dalam file sumber .gql
untuk diimpor ke dalam skrip administratif, Firebase merekomendasikan agar Anda menandai operasi administratif tanpa tingkat akses otorisasi, atau mungkin lebih eksplisit dan menetapkannya sebagai NO_ACCESS
. Apa pun yang terjadi, hal ini mencegah operasi tersebut dijalankan dari
klien atau dalam konteks non-hak istimewa lainnya.
Menggunakan SDK dengan emulator Data Connect
Di lingkungan prototipe dan pengujian, sebaiknya lakukan seeding data dan operasi lainnya pada data lokal. Admin SDK memungkinkan Anda menyederhanakan alur kerja karena mengabaikan autentikasi dan otorisasi untuk alur lokal.
Firebase Admin SDK otomatis terhubung ke emulator Data Connect saat variabel lingkungan DATA_CONNECT_EMULATOR_HOST
ditetapkan:
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
Untuk informasi selengkapnya, lihat:
Mengimplementasikan kasus penggunaan umum
Admin SDK disediakan untuk operasi dengan hak istimewa pada data penting Anda.
API untuk Data Connect terdiri dari antarmuka executeGraphql
baca-tulis dan antarmuka executeGraphqlRead
hanya baca.
Mengelola data pengguna
Kasus penggunaan umum untuk Admin SDK adalah mengelola data pengguna.
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" } } }
Apa langkah selanjutnya?
- Tinjau API untuk Admin SDK.
- Gunakan CLI Firebase dan konsol Google Cloud untuk operasi manajemen project lainnya, seperti mengelola skema dan konektor serta mengelola layanan dan database.