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 و وب SDK را مقداردهی اولیه کنید
محیطهای Google مانند 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();
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
این استراتژی برای مقداردهی اولیه Admin SDK در App Hosting و همچنین سایر محیطهای سرور Google از جمله 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 برای مقداردهی اولیه JavaScript 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"}'
استفاده از مقداردهی اولیه خودکار در محیط های دیگر
هنگام نصب Firebase JavaScript SDK، مقداردهی اولیه خودکار با یک اسکریپت postinstall npm تنظیم می شود. اسکریپت postinstall به دنبال متغیر محیطی FIREBASE_WEBAPP_CONFIG
است که به طور خودکار در محیط App Hosting Cloud Build تنظیم می شود.
اگر JS SDK را خارج از Cloud Build نصب میکنید، برای مثال به صورت محلی برای استفاده با Firebase Emulator Suite، باید خودتان این متغیر محیطی را هنگام نصب Firebase JavaScript SDK تنظیم کنید.
برای تنظیم دستی محیط هنگام نصب:
شی پیکربندی برنامه وب Firebase خود را از کنسول Firebase کپی کنید.
قبل از اجرای دستور
npm install
از یک ترمینال، متغیر محیطیFIREBASE_WEBAPP_CONFIG
را تنظیم کنید.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
هر زمان که پروژه Firebase یا برنامه وب خود را تغییر دادید، این دستور را دوباره اجرا کنید.
از FirebaseServerApp
برای SSR استفاده کنید
اگر با Firebase JS SDK یا سایر SDK های مشتری Firebase در توسعه برنامه وب خود کار کرده اید، احتمالاً با رابط FirebaseApp
و نحوه استفاده از آن برای پیکربندی نمونه های برنامه آشنا هستید. برای تسهیل عملیات مشابه در سمت سرور، Firebase FirebaseServerApp
را ارائه می دهد.
FirebaseServerApp
گونه ای از FirebaseApp
برای استفاده در محیط های رندر سمت سرور (SSR) است. این شامل ابزارهایی برای ادامه جلسات Firebase است که شامل رندر سمت مشتری (CSR) / تقسیم رندر سمت سرور است.
از FirebaseServerApp
برای موارد زیر استفاده کنید:
- برخلاف Firebase Admin SDK که دارای حقوق مدیریت کامل است، کد سمت سرور را در زمینه کاربر اجرا کنید.
- استفاده از App Check در محیطهای SSR فعال کنید.
- یک جلسه Firebase Auth که در کلاینت ایجاد شده است را ادامه دهید.
برای جزئیات کامل در مورد استفاده از FirebaseServerApp
برای این اهداف، به استفاده از Firebase در برنامههای وب پویا با SSR مراجعه کنید.
در برنامه وب خود، App Check فعال کنید
میتوانید از App Check برای تقویت امنیت برنامه وب پویا خود در App Hosting استفاده کنید. با پیادهسازی برخی از استراتژیهای خاص سمت سرور که در استفاده از Firebase در برنامههای وب پویا با SSR توضیح داده شدهاند، میتوانید از پشتیبانهای App Hosting خود در برابر سوء استفاده محافظت کنید.