رابط خط فرمان Firebase CLI) ابزاری است که به شما امکان میدهد محصولات و سرویسهای فایربیس را از طریق خط فرمان مدیریت و پیکربندی کنید.
رابط خط فرمان (CLI) دستوراتی را ارائه میدهد که میتوانند برای انجام طیف وسیعی از وظایف Data Connect ، مانند ایجاد یک پروژه جدید Data Connect ، مقداردهی اولیه یک دایرکتوری کاری محلی مربوطه، راهاندازی شبیهساز Data Connect ، فهرست کردن منابع Data Connect ، تولید SDKهای کلاینت و موارد دیگر، مورد استفاده قرار گیرند.
دستورات راهاندازی
افزودن Data Connect به یک پروژه Firebase
مقداردهی اولیه فایربیس
از firebase init برای تنظیم پیکربندی یک پروژه محلی جدید استفاده کنید. این گردش کار فایلهای پیکربندی Firebase را در دایرکتوری شما ایجاد یا بهروزرسانی میکند.
firebase init جریان firebase init شما را در راهاندازی یک سرویس و پایگاه داده، و در صورت تمایل نصب شبیهساز Data Connect و پیکربندی SDK های تولید شده راهنمایی میکند.
راه اندازی سرویس و پایگاه داده
اگر برای راهاندازی محصول، dataconnect انتخاب کنید، رابط خط فرمان (CLI) از شما نام و مکان سرویس جدید و همچنین اینکه آیا میخواهید یک نمونه Cloud SQL موجود را برای PostgreSQL پیوند دهید یا یک نمونه جدید ایجاد کنید، را درخواست میکند.
اگر یک نمونه موجود لینک شده باشد، رابط خط فرمان (CLI) تنظیمات سازگار مانند احراز هویت IAM و آدرسهای IP عمومی را بررسی میکند.
تنظیمات Local Emulator Suite
جریان CLI امکان راهاندازی شبیهسازها، از جمله شبیهساز Data Connect را ارائه میدهد.
دستورات شبیهساز Data Connect
شبیهساز Data Connect را اجرا کنید
شبیهسازها: شروع/اجرا
firebase emulators:start/exec از نسخه Local Emulator Suite شبیهساز Data Connect در حالت تعاملی با start یا حالت غیرتعاملی مبتنی بر اسکریپت با exec استفاده کنید.
دادههای PostgreSQL محلی را صادر و وارد کنید
برای پشتیبانی از نمونهسازی و آزمایش محلی و ادغام مداوم، میتوانید دادههای ذخیره شده در یک نمونه پایگاه داده محلی را صادر کرده و بین تکرارهای توسعه و اجرای آزمایشها، آن را وارد کنید.
خروجیها به عنوان اسنپشاتهایی از پایگاه داده محلی PostgreSQL شما ذخیره میشوند.
Data Connect سه رویکرد برای صادرات/واردات ارائه میدهد:
- پیکربندی خودکار export/import در
firebase.jsonشما برای تهیه نسخه پشتیبان فوری در هنگام خاموش و روشن شدن شبیهساز - صادرات/واردات دستی با استفاده از رابط خط فرمان (CLI)
- اکسپورت/ایمپورت دستی با استفاده از رابط افزونه VS Code
پیکربندی خودکار اکسپورت و ایمپورت در firebase.json شما
برای پشتیبانگیری از دادهها بین جلسات توسعه، یک مکان پشتیبانگیری خودکار را در طول توالی firebase init مشخص کنید. این مکان در firebase.json شما در فیلد emulators.dataconnect.dataDir ذخیره میشود. هرگونه تغییر دادهای که ایجاد میکنید، به طور خودکار بین اجراهای شبیهساز در اینجا ذخیره میشود، بنابراین در طول آزمایش و کاوش محلی مفید است.
خروجی دستی: emulators:export و emulators:start/exec --import
در حالی که شبیهساز Data Connect در حال اجرا است، در یک ترمینال جداگانه، دستور firebase emulators:export اجرا کنید تا یک snapshot از دادههای خود ذخیره کنید. سپس، میتوانید با استفاده از فلگ --import شبیهساز را از آن snapshot اجرا کنید.
# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>
# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>
اکسپورت/ایمپورت دستی: افزونه VS Code
در رابط کاربری افزونه VS Code، در حالی که شبیهساز در حال اجرا است، از دکمه Export emulator data برای خروجی گرفتن از دادههای مربوط به محتوای فعلی پایگاه داده استفاده کنید. محل پیشفرض خروجی، دایرکتوری exportedData در ریشه دایرکتوری پروژه شما است.
شما میتوانید این دادهها را با استفاده از رابط خط فرمان (CLI) وارد کنید، همانطور که در بخش قبل توضیح داده شد. همچنین میتوانید این دادهها را قبل از شروع شبیهساز از طریق VS Code با کلیک روی پیوند پیکربندی شبیهساز و تنظیم مسیر وارد کردن (Import Path) وارد کنید.
دستورات مدیریت طرحواره و کانکتور
این بخش شامل اطلاعات مرجع CLI برای دستوراتی است که برای مدیریت طرحوارهها و کانکتورها استفاده میکنید.
برای موارد استفاده و شیوههای توصیهشده مربوط به این دستورات، به راهنمای مدیریت طرحواره و کانکتور مراجعه کنید.
استقرار طرحوارهها و کانکتورها
مستقر کردن
firebase deployاین دستور منابع مربوط به سرویسهای Data Connect که در firebase.json ایندکس شدهاند را مستقر میکند. در صورت لزوم، مهاجرت طرحواره و بهروزرسانی کانکتور انجام میشود.
| فرمان | توضیحات | |
|---|---|---|
استقرار پایگاه آتش | پرچم | توضیحات |
–-فقط اتصال داده | طرحوارهها و کانکتورها را برای همه سرویسهای Data Connect برای این پروژه مستقر کنید، اما سایر منابع محصول Firebase را مستقر نکنید. | |
–-فقط اتصال داده: شناسه سرویس | طرحواره و کانکتورها را برای سرویس Data Connect مشخص شده مستقر کنید. | |
–-فقط dataconnect:serviceId:connectorId | یک کانکتور واحد برای سرویس اتصال داده مشخص شده مستقر کنید. | |
–-فقط dataconnect:serviceId:schema | طرحواره را برای سرویس Data Connect مشخص شده مستقر کنید. | |
با استفاده از فلگهای –-only ، میتوانید مقادیر جدا شده با کاما را برای استقرار هر زیرمجموعهای از منابع مورد نظر خود ارسال کنید.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2فهرست کردن سرویسها، طرحوارهها و کانکتورهای Data Connect
اتصال داده: خدمات: لیست
firebase dataconnect:services:listاین دستور اطلاعات اولیه در مورد سرویسها، طرحوارهها و کانکتورهای مستقر در یک پروژه را چاپ میکند.
مقایسه و انتقال طرحوارههای SQL
وقتی firebase deploy اجرا میکنید، رابط خط فرمان (CLI) قبل از استقرار بهروزرسانیها، مقایسه طرحواره SQL را انجام میدهد. همچنین میتوانید مقایسه و بهروزرسانی را مستقیماً با مجموعهای از دستورات dataconnect:sql انجام دهید.
اتصال داده: sql: تفاوت
firebase dataconnect:sql:diffاین دستور، طرحواره محلی یک سرویس را با طرحواره فعلی پایگاه داده Cloud SQL مربوطه مقایسه میکند. این دستور، دستوراتی را که برای مهاجرت پایگاه داده به طرحواره جدید شما اجرا میشوند، چاپ میکند.
| فرمان | توضیحات | |
|---|---|---|
اتصال داده فایربیس: sql: تفاوت | پرچم/پارامتر | توضیحات |
شناسه سرویس | سرویس را مشخص کنید. در صورت حذف، تفاوت همه سرویسها را در firebase.json چاپ کنید. | |
اتصال داده: sql: انتقال
firebase dataconnect:sql:migrateاین دستور تغییرات طرحواره محلی را در پایگاه داده Cloud SQL یک سرویس اعمال میکند.
وقتی یک پروژه محلی جدید Data Connect با فایل پیشفرض dataconnect.yaml راهاندازی میکنید، رفتار دستور dataconnect:sql:migrate این است که قبل از اجرای تغییرات، از شما در مورد هرگونه تغییر مورد نیاز سوال میکند و سپس هرگونه تغییر اختیاری را نیز از شما درخواست میکند. میتوانید این رفتار را طوری تغییر دهید که همیشه تغییرات اختیاری را با بهروزرسانی پیکربندی dataconnect.yaml خود، همانطور که در migrate a schema در حالت strict یا compatible بحث شده است، شامل یا نادیده بگیرد.
در محیطهای تعاملی، رابط خط فرمان (CLI) هر دستور مهاجرت SQL (و اینکه آیا مخرب است یا خیر) را نمایش میدهد و تغییراتی را که میخواهید اعمال کنید، درخواست میکند. ارسال پرچم --force معادل پذیرش همه درخواستها است.
در محیطهای غیرتعاملی:
- بدون
--force، فقط تغییرات غیرمخرب اعمال میشوند. اگر تغییرات مخرب وجود داشته باشد، رابط خط فرمان (CLI) بدون ایجاد هیچ تغییری متوقف میشود. - با
--force، تمام تغییرات اعمال میشوند. اگر این تغییرات شامل هرگونه تغییر مخرب باشد، چاپ میشوند و از شما پرسیده میشود که آیا میخواهید ادامه دهید یا خیر، مگر اینکه پرچم--forceارائه شده باشد.
| فرمان | توضیحات | |
|---|---|---|
اتصال داده فایربیس: sql: انتقال | پرچم | توضیحات |
شناسه سرویس | پایگاه داده را برای سرویس مشخص شده منتقل کنید. اگر پروژه شما فقط یک سرویس داشته باشد، serviceId استنباط میشود. | |
–-نیرو | به طور خودکار درخواستها را بپذیرید. | |
همانند سایر پرچمهای --only ، میتوانید چندین سرویس را که با کاما از هم جدا شدهاند، ارائه دهید.
انتقال یک طرحواره در حالت strict یا compatible
مهاجرتهای طرحواره Data Connect دو حالت اعتبارسنجی طرحواره متفاوت دارند: دقیق و سازگار . اعتبارسنجی حالت دقیق مستلزم آن است که طرحواره پایگاه داده دقیقاً با طرحواره برنامه مطابقت داشته باشد قبل از اینکه طرحواره برنامه بتواند مستقر شود. اعتبارسنجی حالت سازگار مستلزم آن است که طرحواره پایگاه داده با طرحواره برنامه سازگار باشد، به این معنی که عناصری در پایگاه داده شما که توسط طرحواره برنامه شما استفاده نمیشوند، بدون تغییر باقی میمانند.
این حالتهای اعتبارسنجی طرحواره و بهترین شیوهها برای انتقال طرحواره در راهنمای مدیریت طرحواره و کانکتور پوشش داده شدهاند.
حالت اعتبارسنجی با استفاده از کلید schemaValidation در فایل dataconnect.yaml شما تعریف میشود. اگر schemaValidation مشخص نشده باشد، رابط خط فرمان (CLI) تغییرات سازگار را اعمال میکند و قبل از اجرای هرگونه تغییر دقیق، از شما سؤال میکند. به مرجع پیکربندی مراجعه کنید.
مدیریت تغییرات در کانکتورها
وقتی firebase deploy اجرا میکنید، رابط خط فرمان (CLI) بهروزرسانی کانکتورهای مربوطه را آغاز میکند. رابط خط فرمان تغییرات هر کانکتور را تجزیه و تحلیل میکند و مجموعهای از پیامهای ارزیابی را در رابطه با تغییرات کانکتور که ممکن است باعث رفتار غیرمنتظره (پیامها در سطح هشدار) یا خرابی (پیامها در سطح شکست) در نسخههای قبلی کد کلاینت شوند، صادر میکند.
| ارزیابی تأثیر | سناریو |
|---|---|
| سطح هشدار (سازگار با سیم، ممکن است رفتار را تغییر دهد) |
|
| سطح شکست (با سیم سازگار نیست، ممکن است کلاینتها را از کار بیندازد) |
|
| سطح شکست (با سیم سازگار نیست، باعث خرابی کلاینتها میشود ) |
|
در محیطهای تعاملی، رابط خط فرمان (CLI) هر ارزیابی کانکتور را نمایش میدهد و تغییراتی را که میخواهید اعمال کنید، درخواست میکند. عبور از پرچم --force معادل پذیرش همه ارزیابیها است.
در محیطهای غیر تعاملی:
- اگر فقط ارزیابیهای سطح هشدار (تغییرات رفتاری احتمالی) رخ دهد، تمام کانکتورها مستقر شده و هشدارها در ترمینال ثبت میشوند.
- اگر هرگونه ارزیابی سطح شکست رخ دهد، هیچ کانکتوری مستقر نخواهد شد و هشدارها در ترمینال ثبت میشوند. میتوانید با استفاده از پرچم
--forceآن را لغو کنید.
کد مجوز حسابرسی
Data Connect با تجزیه و تحلیل کد کانکتور هنگام استقرار در سرور با استفاده از firebase deploy از Firebase CLI به شما کمک میکند تا استراتژی مجوز خود را ممیزی کنید. میتوانید از این ممیزی برای بررسی کدبیس خود استفاده کنید.
وقتی کانکتورهای خود را مستقر میکنید، رابط خط فرمان (CLI) ارزیابیهایی را برای کد عملیاتی موجود، اصلاحشده و جدید در کانکتور شما ارائه میدهد.
برای عملیات اصلاحشده و جدید، رابط خط فرمان (CLI) هنگام استفاده از سطوح دسترسی خاص در عملیات جدید یا هنگام تغییر عملیات موجود برای استفاده از آن سطوح دسترسی، هشدارهایی صادر میکند و از شما تأیید میخواهد.
هشدارها و اعلانها همیشه برای موارد زیر رخ میدهند:
-
PUBLIC
و هشدارها و اعلانها در سطوح دسترسی زیر زمانی رخ میدهند که آنها را با استفاده از auth.uid با فیلترها تقویت نکنید :
-
USER -
USER_ANON -
USER_EMAIL_VERIFIED
برای اطلاعات بیشتر در مورد مجوز، به راهنمای مجوز و گواهی مراجعه کنید.
دستورات SDK
تولید SDK
اتصال داده: sdk: تولید
firebase dataconnect:sdk:generateاین دستور SDK های نوع بندی شده ای را که در connector.yaml اعلام شده اند، تولید می کند.
همچنین به راهنماهای مربوط به کار با SDK های وب ، SDK های اندروید و SDK های iOS مراجعه کنید.
| فرمان | توضیحات | |
|---|---|---|
اتصال داده فایربیس: sdk:generate | پرچم | توضیحات |
–-تماشا کنید | هر زمان که تغییرات را در فایلهای طرحواره و کانکتور GQL خود ذخیره میکنید، فرآیند را در حال اجرا نگه میدارد و SDK های جدید تولید میکند. اگر تولید با شکست مواجه شود، خطاها در خروجی استاندارد چاپ میشوند، کد تولید شده تغییر نمیکند و دستور به اجرای خود ادامه میدهد. | |
–-فقط شناسه اتصال: پلتفرم | فقط SDK ها را برای یک پلتفرم و یک کانکتور تولید کنید. | |
با استفاده از فلگهای –only ، میتوانید مقادیر جدا شده با کاما را ارسال کنید.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlinدستورات مدیریت SQL ابری
اعطای نقشهای SQL برای Cloud SQL
Data Connect بر روی نمونه PostgreSQL خودتان که روی Cloud SQL میزبانی میشود، عمل میکند. دستورات نقش SQL به شما کمک میکنند تا مجوزها را در جداول پایگاه داده خود مدیریت کنید.
اتصال داده: sql: راهاندازی
firebase dataconnect:sql:setupاین دستور مجوزهای اولیه و سراسری را برای جداول پایگاه داده شما پیکربندی میکند.
روند پیشفرض آمادهسازی و مدیریت پایگاه داده فرض میکند که پروژه شما از یک پایگاه داده جدید (greenfield) استفاده میکند و هنگامی که firebase deploy فراخوانی میکنید، Data Connect تغییرات طرحواره پایگاه داده را که باید انجام شوند نمایش میدهد و پس از تأیید شما، هرگونه مهاجرت را انجام میدهد. اگر این روند مورد نظر شماست، dataconnect:sql:setup از شما میخواهد مجوزهایی از جمله مالکیت طرحواره superuser را اعطا کنید.
برای پایگاههای داده موجود (brownfield)، ممکن است گردش کار خودتان را برای مهاجرت طرحوارهها داشته باشید و بخواهید مالکیت طرحواره را خودتان حفظ کنید. اگر این روند مورد نظر شماست، حتماً در اعلان dataconnect:sql:setup ، از اینکه آیا Data Connect باید مهاجرتهای SQL را برای شما مدیریت کند یا خیر، خودداری کنید. در نتیجهی این امتناع، Data Connect فقط دسترسی read و write به جداول پایگاه داده شما را خواهد داشت، اما مالکیتها و مهاجرتهای طرحواره همچنان بر عهدهی شما خواهد بود.
برای بحث بیشتر و موارد استفاده، به مدیریت سرویسها و پایگاههای داده مراجعه کنید.
اتصال داده: sql: اعطای
firebase dataconnect:sql:grantدر برخی موارد، ممکن است بخواهید مستقیماً به پایگاه داده خود دسترسی پیدا کنید تا دادههای تولید شده توسط برنامههای Data Connect خود را جستجو یا بهروزرسانی کنید. برای انجام این کار، باید یکی از نقشهای تعریف شده در این بخش را به حساب کاربری یا سرویس مورد نیاز اعطا کنید.
برای جزئیات بیشتر در مورد نقشهای اعطا شده، به نقشهای کاربری PostgreSQL مراجعه کنید.
| نقش | نقش SQL | مجوزها | کاربرد | قابل اعطا |
|---|---|---|---|---|
| خواننده | firebasereader_<db_name>_<schema_name> | دسترسی فقط خواندنی به پایگاه داده. میتواند عملیات SELECT را روی تمام جداول درون طرحواره مشخص شده انجام دهد. | ایدهآل برای کاربران یا سرویسهایی که نیاز به بازیابی دادهها دارند اما نیازی به اصلاح ندارند. | بله |
| نویسنده | firebasewriter_<db_name>_<schema_name> | دسترسی خواندن و نوشتن به پایگاه داده. میتواند عملیاتهای SELECT ، INSERT ، UPDATE ، DELETE و TRUNCATE را روی تمام جداول درون طرح انجام دهد. | مناسب برای کاربران یا سرویسهایی که نیاز به تغییر دادهها در پایگاه داده دارند. | بله |
| مالک | firebaseowner_<db_name>_<schema_name> | مالک طرحواره. دارای تمام امتیازات روی تمام جداول و توالیهای موجود در طرحواره است. | این نقش، در ترکیب با roles/cloudsql.client ، اجازه انجام مهاجرت در پایگاه داده را میدهد.برای مثال، هنگام فراخوانی firebase dataconnect:sql:migrate . | بله |
| کاربر برتر | cloudsqlsuperuser | نقش کاربر ارشد داخلی با امتیازات کامل در پایگاه داده. علاوه بر مجوزهای مالک، میتواند طرحواره ایجاد کند، طرحوارهها را حذف کند، افزونهها را نصب کند و هرگونه کار مدیریتی دیگری را انجام دهد. با ورود به عنوان "firebasesuperuser" در رابط خط فرمان (CLI) قابل دسترسی است. | برای نصب افزونهها، ایجاد طرح اولیه و اعطای هر یک از نقشهای SQL قابل اعطا به سایر کاربران مورد نیاز است. اگر یک کاربر غیر ادمین به امتیازات کاربر ارشد نیاز داشته باشد، مهاجرت با شکست مواجه میشود و کاربر را وادار میکند تا از مدیر پایگاه داده (یعنی کاربری با roles/cloudsql.admin ) بخواهد دستورات SQL با امتیازات بالا را اجرا کند. | به کاربرانی با roles/cloudsql.admin اعطا میشود و نمیتوان مستقیماً از Firebase CLI آن را اعطا کرد. |
| فرمان | توضیحات | |
|---|---|---|
اتصال داده فایربیس: sql: grant | پرچم/پارامتر | توضیحات |
-R، --نقش نقش | نقش SQL برای اعطای یکی از موارد زیر: مالک، نویسنده یا خواننده. | |
-E، --ایمیل آدرس ایمیل | برای اعطای نقش به یک حساب کاربری یا سرویس، ایمیل ارسال کنید. | |
گزینههای جهانی
گزینههای سراسری زیر برای همه دستورات اعمال میشوند:
-
--jsonخروجی CLI را برای تجزیه توسط ابزارهای دیگر به JSON تبدیل میکند. - در صورت نیاز، تشخیص خودکار محیطهای غیر TTY توسط
--noninteractiveو--interactiveلغو میشود.