เพิ่ม Firebase Admin SDK ลงในเซิร์ฟเวอร์ของคุณ

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

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

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

ต่อไปนี้เป็นเมทริกซ์คุณลักษณะที่แสดงคุณลักษณะของ Firebase ที่ได้รับการสนับสนุนในแต่ละภาษา:

คุณสมบัติ โหนด js ชวา หลาม ไป ค#
การสร้างโทเค็นแบบกำหนดเอง
การยืนยันโทเค็น ID
การจัดการผู้ใช้
ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์แบบกำหนดเอง
รีเฟรชการเพิกถอนโทเค็น
นำเข้าผู้ใช้
การจัดการคุกกี้เซสชัน
การสร้างลิงค์การดำเนินการทางอีเมล
การจัดการการกำหนดค่าผู้ให้บริการ SAML/OIDC
การสนับสนุนผู้เช่าหลายราย
ฐานข้อมูลเรียลไทม์ *
การส่งข้อความบนคลาวด์ของ Firebase
FCM มัลติคาสต์
จัดการการสมัครหัวข้อ FCM
การจัดเก็บเมฆ
คลาวด์ไฟร์สโตร์
จัดคิวฟังก์ชันด้วย Cloud Tasks
การจัดการโครงการ
กฎความปลอดภัย
การจัดการโมเดล ML
การกำหนดค่าระยะไกลของ Firebase
ตรวจสอบแอป Firebase
ส่วนขยาย Firebase

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

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

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

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

    • ผู้ดูแลระบบ Node.js SDK — Node.js 14+ (แนะนำ Node.js 16+)
      การสนับสนุน Node.js 14 เลิกใช้แล้ว
    • ผู้ดูแลระบบ Java SDK — Java 8+
    • ผู้ดูแลระบบ Python SDK — Python 3.7+ (แนะนำ Python 3.8+)
      การสนับสนุน Python 3.7 เลิกใช้แล้ว
    • ผู้ดูแลระบบ Go SDK — Go 1.17+
    • ผู้ดูแลระบบ .NET SDK — .NET Framework 4.6.1+ หรือ .NET Standard 2.0 สำหรับ .Net Core 2.0+

ตั้งค่าโครงการ Firebase และบัญชีบริการ

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

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

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

เพิ่ม SDK

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

โหนด 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';

ชวา

Firebase Admin Java SDK ได้รับการเผยแพร่ไปยังพื้นที่เก็บข้อมูลส่วนกลางของ Maven หากต้องการติดตั้งไลบรารี ให้ประกาศเป็นการพึ่งพาในไฟล์ build.gradle ของคุณ:

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

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

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

หลาม

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

sudo pip install firebase-admin

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

pip install --user firebase-admin

ไป

สามารถติดตั้ง Go Admin SDK ได้โดยใช้ยูทิลิตี้ go install :

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

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

ค#

สามารถติดตั้ง .NET Admin SDK ได้โดยใช้ตัวจัดการแพ็คเกจ .NET:

Install-Package FirebaseAdmin -Version 2.4.0

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

dotnet add package FirebaseAdmin --version 2.4.0

หรือคุณสามารถติดตั้งได้โดยเพิ่มรายการอ้างอิงแพ็คเกจต่อไปนี้ลงในไฟล์ .csproj ของคุณ:

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

เริ่มต้น SDK

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

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

โหนด js

const app = initializeApp();

ชวา

FirebaseApp.initializeApp();

หลาม

default_app = firebase_admin.initialize_app()

ไป

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

ค#

FirebaseApp.Create();

เมื่อเริ่มต้นแล้ว คุณสามารถใช้ Admin SDK เพื่อทำงานประเภทต่อไปนี้ให้สำเร็จ:

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

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

โหนด js

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

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

ชวา

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);

หลาม

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

ไป

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)
}

ค#

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 ที่มีคีย์อย่างปลอดภัย

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

ในการตั้งค่าตัวแปรสภาพแวดล้อม:

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

ลินุกซ์หรือ macOS

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

หน้าต่าง

ด้วย PowerShell:

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

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

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

โหนด js

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

ชวา

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

FirebaseApp.initializeApp(options);

หลาม

default_app = firebase_admin.initialize_app()

ไป

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

ค#

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

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

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

โหนด 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();

ชวา

// 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();

หลาม

# 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(...)

ไป

// 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)
}

ค#

// 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;

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

โหนด 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);

ชวา

// 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);

หลาม

# 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)

ไป

// 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)
}

ค#

// 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);

กำหนดขอบเขตสำหรับฐานข้อมูลเรียลไทม์และการตรวจสอบสิทธิ์

หากคุณใช้ Google Compute Engine VM ที่มีข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน Google สำหรับฐานข้อมูลเรียลไทม์หรือการตรวจสอบสิทธิ์ โปรดตั้ง ค่าขอบเขตการเข้าถึง ที่ถูกต้องด้วย สำหรับฐานข้อมูลเรียลไทม์และการตรวจสอบสิทธิ์ คุณต้องมีขอบเขตที่ลงท้ายด้วย 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 ไม่ยอมรับข้อมูลรับรองผู้ใช้ gcloud ที่สร้างโดยใช้รหัสไคลเอ็นต์ gcloud OAuth
  • การตรวจสอบสิทธิ์ Firebase กำหนดให้ต้องระบุรหัสโปรเจ็กต์ในการเริ่มต้นสำหรับข้อมูลประจำตัวผู้ใช้ประเภทนี้

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

gcloud

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

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

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

โหนด js

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

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

ชวา

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

FirebaseApp.initializeApp(options);

หลาม

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

ไป

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)
}

ค#

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

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

เรียนรู้เกี่ยวกับ Firebase:

เพิ่มฟีเจอร์ Firebase ให้กับแอปของคุณ: