เพิ่ม Firebase Admin SDK ไปยังเซิร์ฟเวอร์

Admin SDK คือชุดไลบรารีเซิร์ฟเวอร์ที่ช่วยให้คุณโต้ตอบกับ Firebase จากสภาพแวดล้อมที่มีสิทธิ์เพื่อดำเนินการต่างๆ เช่น

  • ทำการค้นหาและการเปลี่ยนแปลงในFirebase Data Connectบริการสำหรับ การจัดการข้อมูลจำนวนมากและการดำเนินการอื่นๆ โดยมีสิทธิ์ของผู้ดูแลระบบเต็มรูปแบบ
  • อ่านและเขียนRealtime Databaseข้อมูลด้วยสิทธิ์ของผู้ดูแลระบบอย่างเต็มรูปแบบ
  • ส่งFirebase Cloud Messagingโดยใช้โปรแกรมด้วยวิธีการที่เรียบง่ายและเป็นทางเลือกแทนโปรโตคอลเซิร์ฟเวอร์ Firebase Cloud Messaging
  • สร้างและยืนยันโทเค็นการตรวจสอบสิทธิ์ Firebase
  • เข้าถึงทรัพยากร Google Cloud เช่น บัคเก็ต Cloud Storage และ ฐานข้อมูล Cloud Firestore ที่เชื่อมโยงกับโปรเจ็กต์ Firebase
  • สร้างคอนโซลผู้ดูแลระบบแบบง่ายของคุณเองเพื่อทำสิ่งต่างๆ เช่น ค้นหาข้อมูลผู้ใช้ หรือเปลี่ยนอีเมลของผู้ใช้สำหรับการตรวจสอบสิทธิ์

หากสนใจใช้ Node.js SDK เป็นไคลเอ็นต์สำหรับการเข้าถึงของผู้ใช้ปลายทาง (เช่น ในแอปพลิเคชันเดสก์ท็อปหรือ IoT ของ Node.js) แทนการเข้าถึงของผู้ดูแลระบบ จากสภาพแวดล้อมที่มีสิทธิ์ (เช่น เซิร์ฟเวอร์) คุณควรทำตามวิธีการตั้งค่า JavaScript SDK ของไคลเอ็นต์แทน

ต่อไปนี้คือตารางฟีเจอร์ที่แสดงฟีเจอร์ Firebase ที่รองรับในแต่ละภาษา

ฟีเจอร์ Node.js Java Python Go C#
การสร้างโทเค็นที่กำหนดเอง
การยืนยันโทเค็นรหัส
การจัดการผู้ใช้
ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์ที่กำหนดเอง
การเพิกถอนโทเค็นการรีเฟรช
นำเข้าผู้ใช้
การจัดการคุกกี้เซสชัน
การสร้างลิงก์การดำเนินการในอีเมล
การจัดการการกำหนดค่าผู้ให้บริการ SAML/OIDC
รองรับกลุ่มผู้ใช้หลายกลุ่ม
Firebase Data Connect
Realtime Database *
Firebase Cloud Messaging
FCM มัลติแคสต์
จัดการFCMการติดตามหัวข้อ
Cloud Storage
Cloud Firestore
จัดคิวฟังก์ชันด้วย Cloud Tasks
การจัดการโปรเจ็กต์
กฎความปลอดภัย
การจัดการโมเดล ML
Firebase Remote Config
Firebase App Check
Firebase Extensions

ดูข้อมูลเพิ่มเติมเกี่ยวกับการผสานรวม Admin SDK สำหรับการใช้งานเหล่านี้ได้ในเอกสารประกอบของ Realtime Database FCM Authentication Remote Config และ Cloud Storage ที่เกี่ยวข้อง ส่วนที่เหลือของหน้านี้จะเน้นที่การตั้งค่าพื้นฐานสำหรับ Admin SDK

ข้อกำหนดเบื้องต้น

  • ตรวจสอบว่าคุณมีแอปเซิร์ฟเวอร์

  • ตรวจสอบว่าเซิร์ฟเวอร์ของคุณเรียกใช้สิ่งต่อไปนี้โดยขึ้นอยู่กับ Admin SDK ที่คุณใช้

    • Admin Node.js SDK - Node.js 18 ขึ้นไป
    • Admin Java SDK - Java 8 ขึ้นไป
    • Admin Python SDK - Python 3.9 ขึ้นไป (แนะนํา Python 3.10 ขึ้นไป)
      เลิกใช้งานการรองรับ Python 3.9 แล้ว
    • Admin Go SDK - Go 1.23 ขึ้นไป
    • Admin .NET SDK - .NET Framework 4.6.2 ขึ้นไปหรือ .NET Standard 2.0 สำหรับ .NET 6.0 ขึ้นไป

สร้างโปรเจ็กต์ Firebase และบัญชีบริการ

หากต้องการใช้Firebase Admin SDK คุณจะต้องมีสิ่งต่อไปนี้

  • โปรเจ็กต์ Firebase
  • บัญชีบริการ Firebase Admin SDK เพื่อสื่อสารกับ Firebase ระบบจะสร้างบัญชีบริการนี้โดยอัตโนมัติเมื่อคุณสร้างโปรเจ็กต์ Firebase หรือเพิ่ม Firebase ลงในโปรเจ็กต์ Google Cloud
  • ไฟล์การกำหนดค่าที่มีข้อมูลเข้าสู่ระบบของบัญชีบริการ

หากยังไม่มีโปรเจ็กต์ Firebase คุณจะต้องสร้างโปรเจ็กต์ในFirebaseคอนโซล ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase ได้ที่ทำความเข้าใจโปรเจ็กต์ Firebase

เพิ่ม SDK

หากกำลังตั้งค่าโปรเจ็กต์ใหม่ คุณจะต้องติดตั้ง SDK สำหรับ ภาษาที่ต้องการ

Node.js

Firebase Admin Node.js SDK พร้อมใช้งานใน npm หากยังไม่มีไฟล์ package.json ให้สร้างผ่าน npm init จากนั้นติดตั้ง firebase-adminแพ็กเกจ npm และบันทึกลงใน package.json

npm install firebase-admin --save

หากต้องการใช้โมดูลในแอปพลิเคชัน ให้requireจากไฟล์ JavaScript

const { initializeApp } = require('firebase-admin/app');

หากใช้ ES2015 คุณสามารถimportโมดูลได้โดยทำดังนี้

import { initializeApp } from 'firebase-admin/app';

Java

Firebase Admin Java SDK เผยแพร่ในที่เก็บ Maven Central หากต้องการติดตั้งไลบรารี ให้ประกาศเป็นทรัพยากร Dependency ในไฟล์ build.gradle ดังนี้

dependencies {
  implementation 'com.google.firebase:firebase-admin:9.5.0'
}

หากใช้ Maven เพื่อสร้างแอปพลิเคชัน คุณสามารถเพิ่มทรัพยากร Dependency ต่อไปนี้ลงใน pom.xml ได้

<dependency>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-admin</artifactId>
  <version>9.5.0</version>
</dependency>

Python

Firebase Admin Python SDK พร้อมใช้งานผ่าน pip คุณติดตั้งไลบรารีสำหรับผู้ใช้ทั้งหมดได้ผ่าน sudo โดยทำดังนี้

sudo pip install firebase-admin

หรือจะติดตั้งไลบรารีสำหรับผู้ใช้ปัจจุบันเท่านั้นก็ได้โดยส่งผ่านแฟล็ก --user

pip install --user firebase-admin

Go

คุณติดตั้ง Go Admin SDK ได้โดยใช้เครื่องมือ go get ดังนี้

# Install the latest version:
go get firebase.google.com/go/v4@latest

# Or install a specific version:
go get firebase.google.com/go/v4@4.17.0

C#

คุณติดตั้ง .NET Admin SDK ได้โดยใช้เครื่องมือจัดการแพ็กเกจ .NET ดังนี้

Install-Package FirebaseAdmin -Version 3.3.0

หรือจะติดตั้งโดยใช้ยูทิลิตีบรรทัดคำสั่ง dotnet ก็ได้

dotnet add package FirebaseAdmin --version 3.3.0

หรือจะติดตั้งโดยเพิ่มรายการอ้างอิงแพ็กเกจต่อไปนี้ลงในไฟล์ .csproj ก็ได้

<ItemGroup>
  <PackageReference Include="FirebaseAdmin" Version="3.3.0" />
</ItemGroup>

เริ่มต้น SDK

เมื่อสร้างโปรเจ็กต์ Firebase แล้ว คุณจะเริ่มต้น SDK ด้วยข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน Google ได้ เนื่องจากการค้นหาข้อมูลเข้าสู่ระบบเริ่มต้นเป็นแบบอัตโนมัติโดยสมบูรณ์ในสภาพแวดล้อมของ Google โดยไม่ต้องระบุตัวแปรสภาพแวดล้อมหรือการกำหนดค่าอื่นๆ เราจึงขอแนะนำอย่างยิ่งให้ใช้วิธีนี้ ในการเริ่มต้น SDK สำหรับแอปพลิเคชันที่ทำงานในสภาพแวดล้อมของ Google เช่น Firebase App Hosting, Cloud Run, App Engine และ Cloud Functions for Firebase

หากต้องการระบุตัวเลือกการเริ่มต้นสำหรับบริการต่างๆ เช่น Realtime Database, Cloud Storage หรือ Cloud Functions (ไม่บังคับ) ให้ใช้ตัวแปรสภาพแวดล้อม FIREBASE_CONFIG หากเนื้อหาของตัวแปร FIREBASE_CONFIG ขึ้นต้นด้วย { ระบบจะแยกวิเคราะห์เป็นออบเจ็กต์ JSON มิฉะนั้น SDK จะถือว่าสตริงเป็นเส้นทางของไฟล์ JSON ที่มีตัวเลือก

Node.js

const app = initializeApp();

Java

FirebaseApp.initializeApp();

Python

default_app = firebase_admin.initialize_app()

Go

app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

C#

FirebaseApp.Create();

เมื่อเริ่มต้นแล้ว คุณจะใช้ Admin SDK เพื่อทํางานประเภทต่อไปนี้ได้

การใช้โทเค็นการรีเฟรช OAuth 2.0

Admin SDK ยังมีข้อมูลเข้าสู่ระบบที่ช่วยให้คุณตรวจสอบสิทธิ์ ด้วยโทเค็นการรีเฟรช Google OAuth2 ได้ด้วย

Node.js

const myRefreshToken = '...'; // Get refresh token from OAuth2 flow

initializeApp({
  credential: refreshToken(myRefreshToken),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

Java

FileInputStream refreshToken = new FileInputStream("path/to/refreshToken.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(refreshToken))
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

Python

cred = credentials.RefreshToken('path/to/refreshToken.json')
default_app = firebase_admin.initialize_app(cred)

Go

opt := option.WithCredentialsFile("path/to/refreshToken.json")
config := &firebase.Config{ProjectID: "my-project-id"}
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

C#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.FromFile("path/to/refreshToken.json"),
});

เริ่มต้น SDK ในสภาพแวดล้อมที่ไม่ใช่ของ Google

หากคุณทำงานในสภาพแวดล้อมเซิร์ฟเวอร์ที่ไม่ใช่ของ Google ซึ่งการค้นหาข้อมูลเข้าสู่ระบบเริ่มต้น ไม่สามารถทำให้เป็นแบบอัตโนมัติได้อย่างสมบูรณ์ คุณสามารถเริ่มต้น SDK ด้วยไฟล์คีย์บัญชีบริการที่ส่งออกได้

โปรเจ็กต์ Firebase รองรับบัญชีบริการของ Google ซึ่งคุณใช้เรียก API ของเซิร์ฟเวอร์ Firebase จากเซิร์ฟเวอร์แอปหรือสภาพแวดล้อมที่เชื่อถือได้ หากคุณกำลังพัฒนาโค้ดในเครื่องหรือติดตั้งใช้งานแอปพลิเคชันในองค์กร คุณสามารถใช้ข้อมูลเข้าสู่ระบบที่ได้รับผ่านบัญชีบริการนี้เพื่อให้สิทธิ์คำขอของเซิร์ฟเวอร์

หากต้องการตรวจสอบสิทธิ์บัญชีบริการและให้สิทธิ์บัญชีดังกล่าว ในการเข้าถึงบริการ Firebase คุณต้องสร้างไฟล์คีย์ส่วนตัวในรูปแบบ JSON

วิธีสร้างไฟล์คีย์ส่วนตัวสำหรับบัญชีบริการ

  1. ในFirebase Console ให้เปิด การตั้งค่า > บัญชีบริการ

  2. คลิกสร้างคีย์ส่วนตัวใหม่ แล้วยืนยันโดยคลิกสร้างคีย์

  3. จัดเก็บไฟล์ JSON ที่มีคีย์อย่างปลอดภัย

เมื่อให้สิทธิ์ผ่านบัญชีบริการ คุณจะมี 2 ตัวเลือกในการระบุข้อมูลเข้าสู่ระบบให้กับแอปพลิเคชัน คุณจะตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS หรือส่งเส้นทางไปยังคีย์บัญชีบริการในโค้ดอย่างชัดเจนก็ได้ ตัวเลือกแรกมีความปลอดภัยมากกว่าและเราขอแนะนำให้ใช้

วิธีตั้งค่าตัวแปรสภาพแวดล้อม

ตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เป็นเส้นทางไฟล์ของไฟล์ JSON ที่มีคีย์บัญชีบริการ ตัวแปรนี้จะมีผลกับเซสชันเชลล์ปัจจุบันเท่านั้น ดังนั้นหากคุณเปิดเซสชันใหม่ ให้ตั้งค่าตัวแปรอีกครั้ง

Linux หรือ macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

ด้วย PowerShell

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

หลังจากทำตามขั้นตอนข้างต้นแล้ว ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) จะกำหนดข้อมูลเข้าสู่ระบบของคุณโดยนัยได้ ซึ่งจะช่วยให้คุณใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการ เมื่อทดสอบหรือเรียกใช้ในสภาพแวดล้อมที่ไม่ใช่ของ Google ได้

เริ่มต้น SDK ดังที่แสดง

Node.js

initializeApp({
    credential: applicationDefault(),
    databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

Java

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

Python

default_app = firebase_admin.initialize_app()

Go

app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

C#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
    ProjectId = "my-project-id",
});

เริ่มต้นแอปหลายแอป

ในกรณีส่วนใหญ่ คุณจะต้องเริ่มต้นแอปเริ่มต้นเพียงแอปเดียว คุณสามารถ เข้าถึงบริการจากแอปนั้นได้ 2 วิธีที่เทียบเท่ากัน ดังนี้

Node.js

// Initialize the default app
const defaultApp = initializeApp(defaultAppConfig);

console.log(defaultApp.name);  // '[DEFAULT]'

// Retrieve services via the defaultApp variable...
let defaultAuth = getAuth(defaultApp);
let defaultDatabase = getDatabase(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = getAuth();
defaultDatabase = getDatabase();

Java

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

System.out.println(defaultApp.getName());  // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
FirebaseAuth defaultAuth = FirebaseAuth.getInstance(defaultApp);
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.getInstance();
defaultDatabase = FirebaseDatabase.getInstance();

Python

# Import the Firebase service
from firebase_admin import auth

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)
print(default_app.name)  # "[DEFAULT]"

# Retrieve services via the auth package...
# auth.create_custom_token(...)

Go

// Initialize default app
app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access auth service from the default app
client, err := app.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

C#

// Initialize the default app
var defaultApp = FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});
Console.WriteLine(defaultApp.Name); // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
var defaultAuth = FirebaseAuth.GetAuth(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.DefaultInstance;

กรณีการใช้งานบางอย่างกำหนดให้คุณต้องสร้างแอปหลายแอปพร้อมกัน ตัวอย่างเช่น คุณอาจต้องการอ่านข้อมูลจาก Realtime Database ของโปรเจ็กต์ Firebase หนึ่งและสร้างโทเค็นที่กำหนดเองสำหรับโปรเจ็กต์อื่น หรือคุณอาจต้องการ ตรวจสอบสิทธิ์ 2 แอปด้วยข้อมูลเข้าสู่ระบบที่แยกกัน Firebase SDK ช่วยให้คุณสร้างแอปหลายแอปพร้อมกันได้ โดยแต่ละแอปจะมีข้อมูลการกำหนดค่าของตัวเอง

Node.js

// Initialize the default app
initializeApp(defaultAppConfig);

// Initialize another app with a different config
var otherApp = initializeApp(otherAppConfig, 'other');

console.log(getApp().name);  // '[DEFAULT]'
console.log(otherApp.name);     // 'other'

// Use the shorthand notation to retrieve the default app's services
const defaultAuth = getAuth();
const defaultDatabase = getDatabase();

// Use the otherApp variable to retrieve the other app's services
const otherAuth = getAuth(otherApp);
const otherDatabase = getDatabase(otherApp);

Java

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

// Initialize another app with a different config
FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other");

System.out.println(defaultApp.getName());  // "[DEFAULT]"
System.out.println(otherApp.getName());    // "other"

// Use the shorthand notation to retrieve the default app's services
FirebaseAuth defaultAuth = FirebaseAuth.getInstance();
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance();

// Use the otherApp variable to retrieve the other app's services
FirebaseAuth otherAuth = FirebaseAuth.getInstance(otherApp);
FirebaseDatabase otherDatabase = FirebaseDatabase.getInstance(otherApp);

Python

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)

#  Initialize another app with a different config
other_app = firebase_admin.initialize_app(cred, name='other')

print(default_app.name)    # "[DEFAULT]"
print(other_app.name)      # "other"

# Retrieve default services via the auth package...
# auth.create_custom_token(...)

# Use the `app` argument to retrieve the other app's services
# auth.create_custom_token(..., app=other_app)

Go

// Initialize the default app
defaultApp, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Initialize another app with a different config
opt := option.WithCredentialsFile("service-account-other.json")
otherApp, err := firebase.NewApp(context.Background(), nil, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access Auth service from default app
defaultClient, err := defaultApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

// Access auth service from other app
otherClient, err := otherApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

C#

// Initialize the default app
var defaultApp = FirebaseApp.Create(defaultOptions);

// Initialize another app with a different config
var otherApp = FirebaseApp.Create(otherAppConfig, "other");

Console.WriteLine(defaultApp.Name); // "[DEFAULT]"
Console.WriteLine(otherApp.Name); // "other"

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = FirebaseAuth.DefaultInstance;

// Use the otherApp variable to retrieve the other app's services
var otherAuth = FirebaseAuth.GetAuth(otherApp);

ตั้งค่าขอบเขตสำหรับ Realtime Database และ Authentication

หากคุณใช้ VM ของ Google Compute Engine ที่มีข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน Google สำหรับ Realtime Database หรือ Authentication โปรดตรวจสอบว่าได้ตั้งค่าขอบเขตการเข้าถึงที่ถูกต้องด้วย สำหรับ Realtime Database และ Authentication คุณต้องมีขอบเขตที่ลงท้ายด้วย userinfo.email และ cloud-platform หรือ firebase.database หากต้องการตรวจสอบขอบเขตการเข้าถึงที่มีอยู่ และเปลี่ยนขอบเขต ให้เรียกใช้คำสั่งต่อไปนี้โดยใช้ gcloud

gcloud

# Check the existing access scopes
gcloud compute instances describe [INSTANCE_NAME] --format json

# The above command returns the service account information. For example:
  "serviceAccounts": [
   {
    "email": "your.gserviceaccount.com",
    "scopes": [
     "https://www.googleapis.com/auth/cloud-platform",
     "https://www.googleapis.com/auth/userinfo.email"
     ]
    }
  ],

# Stop the VM, then run the following command, using the service account
# that gcloud returned when you checked the scopes.

gcloud compute instances set-service-account [INSTANCE_NAME] --service-account "your.gserviceaccount.com" --scopes "https://www.googleapis.com/auth/firebase.database,https://www.googleapis.com/auth/userinfo.email"

การทดสอบด้วยข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทาง gcloud

เมื่อทดสอบ Admin SDK ในเครื่องด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชันของ Google ที่ได้จากการเรียกใช้ gcloud auth application-default login คุณจะต้องทำการเปลี่ยนแปลงเพิ่มเติมเพื่อใช้ Firebase Authentication เนื่องจากสาเหตุต่อไปนี้

  • Firebase Authentication ไม่ยอมรับข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทาง gcloud ที่สร้างขึ้นโดยใช้ รหัสไคลเอ็นต์ OAuth ของ gcloud
  • Firebase Authentication กำหนดให้ระบุรหัสโปรเจ็กต์ในการเริ่มต้นสำหรับ ข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทางประเภทนี้

วิธีแก้ปัญหาชั่วคราวคือคุณสามารถสร้างข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน Google ใน gcloud โดยใช้รหัสไคลเอ็นต์ OAuth 2.0 ของคุณเอง รหัสไคลเอ็นต์ OAuth ต้องเป็นประเภทแอปพลิเคชันแอปเดสก์ท็อป

gcloud

gcloud auth application-default login --client-id-file=[/path/to/client/id/file]

คุณระบุรหัสโปรเจ็กต์อย่างชัดเจนในการเริ่มต้นแอป หรือจะใช้เพียง GOOGLE_CLOUD_PROJECTตัวแปรสภาพแวดล้อมก็ได้ ซึ่งจะช่วยให้คุณไม่ต้องทำการเปลี่ยนแปลงเพิ่มเติมเพื่อทดสอบโค้ด

หากต้องการระบุรหัสโปรเจ็กต์อย่างชัดเจน ให้ทำดังนี้

Node.js

import { initializeApp, applicationDefault } from 'firebase-admin/app';

initializeApp({
  credential: applicationDefault(),
  projectId: '<FIREBASE_PROJECT_ID>',
});

Java

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setProjectId("<FIREBASE_PROJECT_ID>")
    .build();

FirebaseApp.initializeApp(options);

Python

app_options = {'projectId': '<FIREBASE_PROJECT_ID>'}
default_app = firebase_admin.initialize_app(options=app_options)

Go

config := &firebase.Config{ProjectID: "<FIREBASE_PROJECT_ID>"}
app, err := firebase.NewApp(context.Background(), config)
if err != nil {
        log.Fatalf("error initializing app: %v\n", err)
}

C#

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
    ProjectId = "<FIREBASE_PROJECT_ID>",
});

ขั้นตอนถัดไป

ดูข้อมูลเกี่ยวกับ Firebase

เพิ่มฟีเจอร์ Firebase ไปยังแอป

  • เขียนแบ็กเอนด์แบบไร้เซิร์ฟเวอร์ด้วย Cloud Functions
  • จัดเก็บข้อมูลด้วย Realtime Database หรือจัดเก็บข้อมูล Blob ด้วย Cloud Storage
  • รับการแจ้งเตือนด้วย Cloud Messaging