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

    • Admin Node.js SDK - Node.js 18 ขึ้นไป
    • Admin Java SDK - Java 8 ขึ้นไป
    • Admin Python SDK — Python 3.7 ขึ้นไป (แนะนำ Python 3.8 ขึ้นไป)
      การรองรับ Python 3.7 เลิกใช้งานแล้ว
    • Admin Go SDK — Go 1.21 ขึ้นไป
    • 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 ถัดไป ให้ติดตั้งแพ็กเกจ npm ของ firebase-admin และบันทึกลงใน 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.4.1'
}

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

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

Python

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

sudo pip install firebase-admin

หรือจะติดตั้งไลบรารีสำหรับผู้ใช้ปัจจุบันเท่านั้นโดยส่ง Flag --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.15.0

C#

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

Install-Package FirebaseAdmin -Version 3.1.0

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

dotnet add package FirebaseAdmin --version 3.1.0

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

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

เริ่มต้นใช้งาน SDK

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

หากต้องการระบุตัวเลือกการเริ่มต้นสำหรับบริการ เช่น 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 ให้เปิดการตั้งค่า > บัญชีบริการ

  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