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، خودتان این متغیر محیطی را تنظیم کنید.
برای تنظیم دستی محیط در هنگام نصب:
شیء پیکربندی برنامه وب Firebase خود را از کنسول Firebase کپی کنید.
قبل از اجرای دستور
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 خود در برابر سوءاستفاده محافظت کنید.