เพิ่ม 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 Node.js SDK — Node.js 14 ขึ้นไป (แนะนําให้ใช้ Node.js 18 ขึ้นไป)
      การรองรับ Node.js 14 และ 16 เลิกใช้งานแล้ว
    • Admin Java SDK - Java 8 ขึ้นไป
    • Admin Python SDK — Python 3.7 ขึ้นไป (แนะนำ Python 3.8 ขึ้นไป)
      เราเลิกรองรับ Python 3.7 แล้ว
    • Admin Go SDK - Go 1.20 ขึ้นไป
    • 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.4.1'
}

หากใช้ Maven เพื่อสร้างแอปพลิเคชัน คุณจะเพิ่มการขึ้นต่อกันต่อไปนี้ให้กับ 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.0.1

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

dotnet add package FirebaseAdmin --version 3.0.1

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

<ItemGroup>
  <PackageReference Include="FirebaseAdmin" Version="3.0.1" />
</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 ที่มีคีย์บัญชีบริการ ตัวแปรนี้จะใช้กับเซสชัน Shell ปัจจุบันเท่านั้น ดังนั้นหากคุณเปิดเซสชันใหม่ ให้ตั้งค่าตัวแปรอีกครั้ง

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 ที่สร้างขึ้นโดยใช้รหัสไคลเอ็นต์ gcloud OAuth
  • 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 ลงในแอป

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