المَعلمات هي الآلية التي يخصّص المستخدِم من خلالها كلّ مثبَّت مثيل الإضافة. تعتبر المعلمات مثل المتغيرات البيئية الإضافة. يمكن أن تكون قيم المَعلمات إما معبّأة تلقائيًا (يوفّرها Firebase بعد التثبيت) أو مُعدّة من قِبل المستخدم (يحدّدها المستخدم أثناء التثبيت).
هذه المعلمات متاحة لك للرجوع إليها في
يعمل على رمز المصدر وملف extension.yaml
وPOSTINSTALL.md
الملف. فيما يلي بناء الجملة لكيفية الإشارة إلى معلمة تسمى
PARAMETER_NAME
:
ضمن رمز المصدر الدوال، استخدم وحدة
params
(على سبيل المثال،params.defineInt("PARAMETER_NAME")
) أوprocess.env.PARAMETER_NAME
.في
extension.yaml
وPOSTINSTALL.md
، يمكنك استخدام${param:PARAMETER_NAME}
بعد التثبيت، تعرض وحدة تحكّم Firebase محتوى
POSTINSTALL.md
وملء أي مراجع للمعلَمات باستخدام القيم الفعلية للمثيل المثبَّت.
المَعلمات التي تتم تعبئتها تلقائيًا
يتمتع كل مثيل مثبت من إضافة بإمكانية الدخول تلقائيًا إلى العديد المَعلمات التلقائية التي تتمّ تعبئتها تلقائيًا والتي يوفّرها Firebase (راجِع الجدول أدناه). قيم المَعلمات هذه هي القيم التلقائية لمنصة Firebase. (مثل حزمة التخزين التلقائية) أو خاصة بالإضافة (مثل معرّف مثيل الإضافة).
تكون جميع قيم المَعلمات التي تتم تعبئتها تلقائيًا غير قابلة للتغيير. يتم تعيينها في وقت إنشاء المشروع أو تثبيت الإضافات.
على الرغم من أنّ Firebase تملأ قيم المَعلمات هذه تلقائيًا للإضافة، لا توفّر Firebase المنتجات المرتبطة تلقائيًا للمستخدم أثناء
التركيب. يجب أن يفعّل المستخدم الذي يثبّت الإضافة الإضافة المرتبطة
والمنتجات السارية في مشروعاتهم قبل التركيب. على سبيل المثال، إذا
تتضمّن إضافتك Cloud Firestore، على المستخدم
إعداد Cloud Firestore في
مشروعك. ننصحك بإبلاغ المستخدمين بهذه المتطلبات في
PREINSTALL.md
.
مرجع للمَعلمة التي تتم تعبئتها تلقائيًا | الوصف | قيمة المَعلمة (التي يوفّرها Firebase) |
---|---|---|
المَعلمات التي تحتوي على قيم تلقائية من مشروع Firebase | ||
PROJECT_ID |
المعرّف الفريد لمشروع Firebase الذي تظهر فيه الإضافة تم التثبيت |
تنسيق عام:
مثال على القيمة: |
DATABASE_URL |
عنوان URL التلقائي لمثيل Realtime Database لمشروع Firebase |
تنسيق عام:
مثال على القيمة: |
DATABASE_INSTANCE |
اسم المثيل التلقائي لـ Realtime Database لمشروع Firebase تكون هذه القيمة عادةً مطابقة لرقم تعريف المشروع أو تنتهي بالرمز
|
تنسيق عام:
مثال على القيمة: |
STORAGE_BUCKET |
اسم حزمة Cloud Storage التلقائي لمشروع Firebase |
تنسيق عام:
مثال على القيمة: |
مَعلمة ذات قيمة تلقائية من عملية تثبيت الإضافة | ||
EXT_INSTANCE_ID |
المعرّف الفريد لمثيل الإضافة المثبّتة يتم إنشاء هذه القيمة من
|
تنسيق معمم لأول مثيل مثبَّت (يتم تحديده تلقائيًا)
بواسطة Firebase لا يمكن تعديله من خلال المستخدم أثناء التثبيت):
مثال على القيمة: التنسيق العام للنسخة المثبَّتة الثانية والنسخ اللاحقة
(تخصّصه Firebase تلقائيًا، ويمكن للمستخدم تعديله
أثناء التثبيت):
مثال على القيمة: |
المَعلمات التي ضبطها المستخدِم
لتمكين المستخدم من تخصيص كل نسخة افتراضية مثبَّتة من الإضافة، يمكنك
مطالبة المستخدم بتحديد قيم المعلمات أثناء التثبيت. لطلب هذه
يمكنك إعداد الطلبات في القسم "params
" من extension.yaml
الملف.
في ما يلي مثال على قسم params
، يليه جدول يصف كل الخيارات المتاحة
المعلمة.
# extension.yaml
...
# Parameters (environment variables) for which the user specifies values during installation
params:
- param: DB_PATH
label: Realtime Database path
description: >-
What is the Realtime Database path where you will write new text
for sentiment analysis?
type: string
validationRegex: ^\S+$
validationErrorMessage: Realtime Database path cannot contain spaces.
example: path/to/posts
required: true
- param: TEXT_KEY
label: Key for text
description: What is the name of the key that will contain text to be analyzed?
type: string
default: textToAnalyze
required: true
في القسم params
من ملف extension.yaml
، استخدِم الحقول التالية.
لتحديد مَعلمة ضبطها المستخدِم:
الحقل | النوع | الوصف | ||||
---|---|---|---|---|---|---|
param (مطلوب) |
السلسلة | اسم المَعلمة | ||||
label (مطلوب) |
السلسلة |
وصف موجز للمَعلمة يتم عرضها للمستخدم عندما يُطلب منه إدخال القيمة |
||||
description (اختياري) |
السلسلة |
وصف تفصيلي للمَعلمة يتم عرضها للمستخدم عندما يُطلَب منه قيمة المَعلمة يدعم Markdown | ||||
type (اختياري) |
السلسلة |
آلية إدخال لكيفية تعيين المستخدم لقيمة المعلمة (لـ على سبيل المثال، أدخل النص مباشرةً أو حدد من القائمة المنسدلة) تشمل القيم الصالحة ما يلي:
إذا تم حذف هذا الحقل، سيتم ضبط المَعلمة تلقائيًا على |
||||
options (مطلوبة إذا كانت المَعلمة type
هو select أو multiSelect )
|
القائمة |
قائمة بالقيم التي يمكن للمستخدم الاختيار من بينها أدرِج
يجب ملء الحقل " |
||||
resourceType (مطلوبة إذا كانت المَعلمة type
يبلغ selectResource )
|
السلسلة |
نوع مرجع Firebase الذي يجب أن يختار المستخدمه في الوقت الحالي، يمكن استخدام Cloud Storage مجموعة بيانات فقط مع أدوات اختيار الموارد:
سيتم تجاهل قيم |
||||
example (اختياري) |
السلسلة |
مثال على قيمة المَعلمة |
||||
validationRegex (اختياري) (لا ينطبق إلا عندما تكون المعلمة type
string )
|
السلسلة |
سلسلة التعبير العادي للتحقّق من صحة القيمة التي ضبطها المستخدم للمَعلمة يتم تجميع التعبير العادي باستخدام مكتبة go: RE2. للاطّلاع على تفاصيل عن عملية التحقّق، يُرجى الرجوع إلى رسائل التحقّق والأخطاء أدناه. |
||||
validationErrorMessage (اختياري) |
السلسلة |
رسالة الخطأ التي يتم عرضها في حال تعذّر
لمعرفة تفاصيل عن رسائل الخطأ، يُرجى الرجوع إلى رسائل التحقّق من الصحة والخطأ أدناه. |
||||
default (اختياري) |
السلسلة |
القيمة التلقائية للمعلَمة إذا ترك المستخدم حقل المَعلمة قيمة فارغة يمكنك تحديد قيمة
مَعلمة يتمّ تعبئتها تلقائيًا
لقيمة |
||||
required (اختياري) |
قيمة منطقية |
يحدّد ما إذا كان بإمكان المستخدم إرسال سلسلة فارغة عند طلب قيمة المَعلمة. في حال حذف |
||||
immutable (اختياري) |
قيمة منطقية |
تحدد ما إذا كان يمكن للمستخدم تغيير قيمة المعلمة بعد (على سبيل المثال، إذا كانت إعادة الضبط الإضافة) في حال حذف
ملاحظة: إذا حددت
"الموقع الجغرافي"
للدوال المنشورة لإضافتك،
يجب تضمين الحقل |
التحقّق من صحة قيم الإعدادات التي ضبطها المستخدم وإرسال رسائل خطأ بشأنها
عند إعداد مَعلمة باستخدام type
لـ string
، عليك تحديد
التحقق المناسب من التعبير العادي
validationRegex
.
وبالنسبة إلى العديد من الإضافات، غالبًا ما تكون قيمة المعلَمة، وهي قاعدة بيانات. المسار أو حزمة Cloud Storage. اعلم أنه أثناء التثبيت أو إعادة الضبط أو ، لم تتحقَّق خدمة Extensions مما يلي في وقت إدخال قيمة المَعلمة:
- ما إذا تم إعداد قاعدة البيانات المحدّدة أو حزمة Cloud Storage ضمن مشروع Firebase للمستخدم
- ما إذا كان مسار قاعدة البيانات المحدّد متوفّرًا في قاعدة بيانات المستخدم
ومع ذلك، عندما تنشر الإضافة مواردها، ستعرض Firebase console أو Firebase CLI رسالة خطأ في حال عدم إعداد قاعدة البيانات المُشار إليها أو حزمة Cloud Storage في المشروع بعد.
ننصحك بشدة بإعلام المستخدمين في
ملف واحد (PREINSTALL
)
عن هذه المتطلبات، حتى يتمكن المستخدمون عند تثبيت الإضافة
بنجاح ويعمل كما هو متوقع.
معلمات النظام
تتحكّم معلَمات النظام في الضبط الأساسي لموارد الإضافة. وبما أنّها مخصّصة للتحكّم في إعدادات الموارد، لا يمكن الوصول إليها كمتغيّرات بيئة من داخل رمز الدالة.
لا يلزم عادةً الإعلان عن أي شيء لهذه المعلمات في
extension.yaml
يتم تحديدها تلقائيًا لكل مثيل إضافة،
ويمكن للمستخدمين ضبط قيم مخصّصة عند تثبيت
الإضافة.
ومع ذلك، إذا كانت إضافتك تتطلب موارد خاصة،
يمكنك ضبط قيم معيّنة على مستوى كلّ مورد في extension.yaml
.
ستلغي إعدادات الضبط هذه لكل مورد إضافة المستخدم
الإعدادات على مستوى المثيل.
على سبيل المثال:
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
availableMemoryMb: 1024
- name: normal_function
type: firebaseextensions.v1beta.function
description: >-
This function has no special memory requirements. It will use the
default value, or the value of `firebaseextension.v1beta.function/memory`
properties:
httpsTrigger: {}
runtime: nodejs18
مَعلمات النظام المتوفّرة هي:
الاسم | التصنيف (مناسب للأشخاص) | الحقل المقابل في properties |
الوصف |
---|---|---|---|
firebaseextensions.v1beta.function/location/location | الموقع الجغرافي | location |
ما هي المنطقة التي يجب تفعيل Cloud Functions فيها؟ |
firebaseextensions.v1beta.function/memory | ذاكرة الدوال | memory |
كم عدد وحدات الميغابايت التي يجب تخصيصها لكل دالة من وحدات الذاكرة؟ |
firebaseextensions.v1beta.function/timeoutSeconds | مهلة الدالة | timeout |
كم ثانية يجب تشغيل الوظائف قبل انتهاء المهلة؟ |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | مخرج موصِّل سحابة VPC | vpcConnectorEgressSettings |
تتحكّم هذه السياسة في الزيارات الصادرة عند ضبط موصِّل VPC. |
firebaseextensions.v1beta.function/vpcConnector | موصِّل سحابة VPC | vpcConnector |
يربط دوال Cloud بموصِّل VPC المحدّد. |
firebaseextensions.v1beta.function/minInstances | الحد الأدنى لمثيلات الدوال | minInstances |
الحد الأدنى لعدد مثيلات هذه الدالة المطلوب تشغيلها في وقت واحد |
firebaseextensions.v1beta.function/maxInstances | الحد الأقصى لمثيلات الدوال | maxInstances |
الحد الأقصى لعدد مثيلات هذه الدالة التي يتم تشغيلها في وقت واحد |
firebaseextensions.v1beta.function/ingressSettings | إعدادات الدخول | ingressSettings |
عناصر التحكم التي يتم قبول الزيارات الواردة منها |
firebaseextensions.v1beta.function/labels. | التصنيفات | labels |
التصنيفات التي سيتم تطبيقها على جميع الموارد في الإضافة |