Firebase SDK ها را با برنامه وب خود ادغام کنید

Firebase App Hosting یک گزینه طبیعی برای برنامه‌های وب پویا است که با Firebase JavaScript SDK و Firebase Admin SDK برای Node.js ساخته شده‌اند. در یک برنامه وب کامل، SDK های Firebase مانند Authentication ، Cloud Firestore و App Check نقش‌های مهمی ایفا می‌کنند. این راهنما برخی از استراتژی‌های کلیدی را برای کمک به بهینه‌سازی SDK های Firebase و شروع به ساخت Firebase در برنامه وب شما در Firebase App Hosting شرح می‌دهد.

مقداردهی اولیه خودکار Firebase Admin SDK

محیط‌های گوگل مانند Firebase App Hosting ، مقداردهی اولیه ساده‌شده برنامه را از طریق فراخوانی سازنده بدون آرگومان در زمان ساخت و زمان اجرا ارائه می‌دهند. این ویژگی هم در Firebase Admin SDK برای Node.js - یک SDK سمت سرور که بخش بزرگی از قابلیت‌های Firebase را آزاد می‌کند و می‌تواند در برنامه وب شما بسیار مفید باشد - و هم در Firebase JavaScript SDK وجود دارد .

با استفاده از initializeApp() ، می‌توانید به Firebase App Hosting اجازه دهید تا پیکربندی برنامه وب را به طور خودکار برای شما پر کند، در حالی که همچنان در صورت تمایل به لغو مقادیر پیش‌فرض، گزینه کنترل دقیق بر روی مقادیر خاص را حفظ می‌کند.

مقداردهی اولیه بدون هیچ آرگومانی

برای مقداردهی اولیه Firebase JavaScript SDK یا Firebase Admin SDK با مقادیر پیکربندی پیش‌فرض، از initializeApp() بدون ارائه هیچ آرگومانی استفاده کنید:

Admin SDK

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

کیت توسعه نرم‌افزار جاوا اسکریپت (SDK)

import { initializeApp } from 'firebase/app';
const app = initializeApp();

این استراتژی برای مقداردهی اولیه Admin SDK هم در App Hosting و هم در سایر محیط‌های سرور گوگل از جمله Cloud Run، App Engine و Cloud Functions کار می‌کند. برای SDK جاوا اسکریپت، این استراتژی در App Hosting نیز کار می‌کند.

مقادیر خودکار پر شده را نادیده بگیرید

شما می‌توانید پیکربندی پیش‌فرضی که به صورت خودکار تزریق می‌شود را لغو کنید. توجه داشته باشید که این گزینه‌ها بین Admin SDK و JavaScript SDK متفاوت هستند.

نادیده گرفتن Admin SDK

برای تعیین اختیاری گزینه‌های مقداردهی اولیه سفارشی برای سرویس‌هایی مانند پایگاه داده بلادرنگ، ذخیره‌سازی ابری یا توابع ابری، از متغیر محیطی FIREBASE_CONFIG استفاده کنید. اگر محتوای متغیر FIREBASE_CONFIG با کاراکتر { شروع شود، به عنوان یک شیء JSON تجزیه می‌شود. در غیر این صورت، SDK فرض می‌کند که رشته، مسیر یک فایل JSON حاوی گزینه‌ها است.

# apphosting.yaml

env:
  - variable: FIREBASE_CONFIG
    value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'

نادیده گرفتن SDK جاوا اسکریپت

برای لغو مقادیر پیش‌فرض FIREBASE_WEBAPP_CONFIG که App Hosting برای مقداردهی اولیه SDK جاوا اسکریپت تزریق می‌کند، می‌توانید مقادیری را در apphosting.yaml مشخص کنید:

# apphosting.yaml

env:
  - variable: FIREBASE_WEBAPP_CONFIG
    value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'

استفاده از مقداردهی اولیه خودکار در محیط‌های دیگر

مقداردهی اولیه خودکار با یک اسکریپت npm postinstall هنگام نصب Firebase JavaScript SDK تنظیم می‌شود. اسکریپت postinstall به دنبال متغیر محیطی FIREBASE_WEBAPP_CONFIG می‌گردد که به طور خودکار در محیط App Hosting Cloud Build تنظیم می‌شود.

اگر JS SDK را خارج از Cloud Build نصب می‌کنید، باید هنگام نصب Firebase JavaScript SDK، خودتان این متغیر محیطی را تنظیم کنید.

برای تنظیم دستی محیط در هنگام نصب:

  1. شیء پیکربندی برنامه وب Firebase خود را از کنسول Firebase کپی کنید.

  2. قبل از اجرای دستور npm install از طریق ترمینال، متغیر محیطی FIREBASE_WEBAPP_CONFIG را تنظیم کنید.

FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase

هر زمان که پروژه Firebase یا برنامه وب خود را تغییر می‌دهید، این دستور را دوباره اجرا کنید. ممکن است لازم باشد حافظه‌های پنهان میانی (مانند .next/cache ) نیز پاک شوند.

استفاده از FirebaseServerApp برای SSR

اگر در توسعه برنامه وب خود با Firebase JS SDK یا سایر SDK های کلاینت Firebase کار کرده باشید، احتمالاً با رابط FirebaseApp و نحوه استفاده از آن برای پیکربندی نمونه‌های برنامه آشنا هستید. برای تسهیل عملیات مشابه در سمت سرور، Firebase FirebaseServerApp ارائه می‌دهد.

FirebaseServerApp نوعی از FirebaseApp برای استفاده در محیط‌های رندر سمت سرور (SSR) است. این برنامه شامل ابزارهایی برای ادامه جلسات Firebase است که رندر سمت کلاینت (CSR) / رندر سمت سرور را در بر می‌گیرد.

از FirebaseServerApp برای موارد زیر استفاده کنید:

  • کد سمت سرور را در چارچوب کاربر اجرا می‌کند، برخلاف Firebase Admin SDK که دارای حقوق مدیریتی کامل است.
  • استفاده از App Check در محیط‌های SSR فعال کنید.
  • ادامه دادن یک جلسه احراز هویت Firebase که در کلاینت ایجاد شده است.

برای جزئیات کامل در مورد استفاده از FirebaseServerApp برای این اهداف، به استفاده از Firebase در برنامه‌های وب پویا با SSR مراجعه کنید.

فعال کردن App Check در برنامه وب شما

شما می‌توانید از App Check برای تقویت امنیت برنامه وب پویای خود در App Hosting استفاده کنید. با پیاده‌سازی برخی از استراتژی‌های خاص سمت سرور که در بخش «استفاده از Firebase در برنامه‌های وب پویا با SSR» توضیح داده شده است، می‌توانید از backendهای App Hosting خود در برابر سوءاستفاده محافظت کنید.