欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

پارامترها و شرایط پیکربندی از راه دور

هنگام استفاده از کنسول Firebase یا Remote Config Backend API ، یک یا چند پارامتر (جفت کلید-مقدار) را تعریف می‌کنید و مقادیر پیش‌فرض درون برنامه را برای آن پارامترها ارائه می‌کنید. می توانید با تعریف مقادیر پارامتر سمت سرور، مقادیر پیش فرض درون برنامه را لغو کنید. کلیدهای پارامتر و مقادیر پارامتر رشته‌ای هستند، اما وقتی از این مقادیر در برنامه خود استفاده می‌کنید، مقادیر پارامتر را می‌توان به‌عنوان انواع دیگر داده ارسال کرد.

با استفاده از کنسول Firebase، Admin SDK یا Remote Config REST API ، می‌توانید مقادیر پیش‌فرض جدیدی برای پارامترهای خود و همچنین مقادیر شرطی که برای گروه‌های هدف از نمونه‌های برنامه استفاده می‌شوند، ایجاد کنید. هر بار که پیکربندی خود را در کنسول Firebase به روز می کنید، Firebase نسخه جدیدی از الگوی Remote Config شما را ایجاد و منتشر می کند. نسخه قبلی ذخیره شده است و به شما این امکان را می دهد تا در صورت نیاز آن را بازیابی یا برگردانید. این عملیات از طریق کنسول Firebase، Firebase Admin SDK، و REST API در دسترس شما هستند و در نسخه‌های قالب Manage Remote Config توضیح داده شده‌اند.

این راهنما پارامترها، شرایط، قوانین، مقادیر شرطی و نحوه اولویت بندی مقادیر پارامترهای مختلف در سرور Remote Config و در برنامه شما را توضیح می دهد. همچنین جزئیات مربوط به انواع قوانین مورد استفاده برای ایجاد شرایط را ارائه می دهد.

شرایط، قوانین و مقادیر شرطی

یک شرط برای هدف قرار دادن گروهی از نمونه های برنامه استفاده می شود. شرایط از یک یا چند قانون تشکیل شده است که باید همه آنها به true ارزیابی شوند تا شرایط برای یک نمونه برنامه مشخص به true ارزیابی شود. اگر مقدار یک قانون تعریف نشده باشد (مثلاً وقتی هیچ مقداری در دسترس نباشد)، آن قانون به false ارزیابی می‌شود.

برای مثال، پارامتری که صفحه splash یک برنامه را تعریف می‌کند، می‌تواند تصاویر مختلفی را بر اساس نوع سیستم‌عامل با استفاده از قانون ساده if device_os = Android :

تصویربرداری از صفحه پارامتر "splash_page" در کنسول Firebase که مقدار پیش‌فرض آن را برای iOS و مقدار شرطی آن را برای Android نشان می‌دهد.

یا، می‌توان از یک شرط زمانی برای کنترل زمانی که برنامه شما موارد تبلیغاتی ویژه را نمایش می‌دهد استفاده کرد.

یک پارامتر می تواند چندین مقدار شرطی داشته باشد که از شرایط مختلف استفاده می کند و پارامترها می توانند شرایط را در یک پروژه به اشتراک بگذارند. در تب Parameters کنسول Firebase، می‌توانید درصد واکشی برای مقادیر شرطی هر پارامتر را مشاهده کنید. این معیار، درصد درخواست‌هایی را در 24 ساعت گذشته نشان می‌دهد که هر مقدار را دریافت کرده‌اند.

اولویت مقدار پارامتر

یک پارامتر ممکن است چندین مقدار شرطی مرتبط با آن داشته باشد. قوانین زیر تعیین می کند که کدام مقدار از سرور پیکربندی از راه دور واکشی می شود و کدام مقدار در یک نمونه برنامه خاص در یک نقطه خاص از زمان استفاده می شود:

مقادیر پارامتر سمت سرور طبق لیست اولویت زیر واکشی می شوند

  1. ابتدا، مقادیر شرطی اعمال می‌شوند، در صورتی که شرایطی وجود داشته باشد که برای یک نمونه برنامه مشخص، true ارزیابی می‌شود. اگر چند شرط به true ارزیابی شود، اولین (بالا) نشان داده شده در رابط کاربری کنسول Firebase اولویت دارد و مقادیر شرطی مرتبط با آن شرط زمانی که یک برنامه مقادیر را از backend واکشی می کند، ارائه می شود. می توانید اولویت شرایط را با کشیدن و رها کردن شرایط در برگه Conditions تغییر دهید.

  2. اگر هیچ مقدار شرطی با شرایطی وجود نداشته باشد که به true ارزیابی شود، مقدار پیش‌فرض سمت سرور زمانی ارائه می‌شود که یک برنامه مقادیر را از backend واکشی می‌کند. اگر پارامتری در باطن وجود نداشته باشد، یا اگر مقدار پیش‌فرض روی استفاده از پیش‌فرض درون برنامه تنظیم شده باشد، وقتی برنامه مقادیری را واکشی می‌کند، هیچ مقداری برای آن پارامتر ارائه نمی‌شود.

در برنامه شما، مقادیر پارامتر با متدهای get مطابق فهرست اولویت زیر برگردانده می شود

  1. اگر مقداری از Backend واکشی شده و سپس فعال شده باشد، برنامه از مقدار واکشی شده استفاده می کند. مقادیر پارامتر فعال شده پایدار هستند.
  2. اگر هیچ مقداری از پشتیبان واکشی نشده باشد، یا اگر مقادیر دریافت شده از باطن Remote Config فعال نشده باشد، برنامه از مقدار پیش‌فرض درون برنامه استفاده می‌کند.

    برای اطلاعات بیشتر در مورد به دست آوردن و تنظیم مقادیر پیش فرض، به دانلود پیش فرض های الگوی پیکربندی از راه دور مراجعه کنید.

  3. اگر مقدار پیش‌فرض درون برنامه‌ای تنظیم نشده باشد، برنامه از یک مقدار استاتیک استفاده می‌کند (مانند 0 برای int و false برای boolean ).

این نمودار نحوه اولویت بندی مقادیر پارامترها در باطن Remote Config و در برنامه شما را خلاصه می کند:

نموداری که جریان توصیف شده توسط لیست های مرتب شده در بالا را نشان می دهد

انواع داده های مقدار پارامتر

Remote Config به شما امکان می دهد یک نوع داده را برای هر پارامتر انتخاب کنید، و تمام مقادیر سمت سرور را در برابر آن نوع قبل از به روز رسانی الگو تأیید می کند. نوع داده در یک درخواست getRemoteConfig ذخیره و برگردانده می شود.

انواع پشتیبانی شده در حال حاضر عبارتند از:

  • String
  • Boolean
  • Number
  • JSON

در رابط کاربری کنسول Firebase، نوع داده را می توان از یک منوی کشویی در کنار کلید پارامتر انتخاب کرد. در REST API انواع را می توان با استفاده از فیلد value_type در شی پارامتر تنظیم کرد.

گروه های پارامتر

Remote Config به شما امکان می دهد پارامترها را با هم گروه بندی کنید تا رابط کاربری و مدل ذهنی سازمان یافته تر داشته باشید.

به عنوان مثال، فرض کنید باید سه نوع مختلف احراز هویت را فعال یا غیرفعال کنید در حالی که یک ویژگی ورود جدید را ارائه می کنید. با Remote Config، می توانید سه پارامتر را ایجاد کنید تا انواع را به دلخواه فعال کنید، و سپس آنها را در گروهی به نام "ورود جدید" سازماندهی کنید، بدون نیاز به اضافه کردن پیشوندها یا مرتب سازی خاص.

می توانید گروه های پارامتر را با استفاده از کنسول Firebase یا Remote Config REST API ایجاد کنید. هر گروه پارامتری که ایجاد می کنید یک نام منحصر به فرد در قالب Remote Config شما دارد. هنگام ایجاد گروه های پارامتر، به خاطر داشته باشید:

  • پارامترها را می توان تنها در یک گروه در هر زمان گنجاند و یک کلید پارامتر باید همچنان در همه پارامترها منحصر به فرد باشد.
  • نام گروه پارامتر به 256 کاراکتر محدود شده است.
  • اگر از REST API و کنسول Firebase استفاده می‌کنید، مطمئن شوید که منطق REST API برای کنترل گروه‌های پارامتر در انتشار به‌روزرسانی شده است.

گروه های پارامتر را با استفاده از کنسول Firebase ایجاد یا تغییر دهید

می توانید پارامترها را در تب Parameters کنسول Firebase گروه بندی کنید. برای ایجاد یا تغییر یک گروه:

  1. مدیریت گروه ها را انتخاب کنید.
  2. کادرهای چک را برای پارامترهایی که می خواهید اضافه کنید انتخاب کنید و انتقال به گروه را انتخاب کنید.
  3. یک گروه موجود را انتخاب کنید، یا با وارد کردن یک نام و توضیحات، و انتخاب ایجاد گروه جدید، یک گروه جدید ایجاد کنید. پس از ذخیره یک گروه، با استفاده از دکمه انتشار تغییرات در دسترس است.

ایجاد گروه ها به صورت برنامه ای

Remote Config REST API یک راه خودکار برای ایجاد و انتشار گروه‌های پارامتر ارائه می‌کند. با فرض اینکه با REST آشنا هستید و برای مجوز دادن به درخواست‌ها به API تنظیم شده‌اید، می‌توانید این مراحل را برای مدیریت برنامه‌ریزی گروه‌ها انجام دهید:

  1. الگوی فعلی را بازیابی کنید
  2. اشیاء JSON را برای نمایش گروه های پارامتر خود اضافه کنید
  3. گروه های پارامتر را با استفاده از درخواست HTTP PUT منتشر کنید.

شیء parameterGroups حاوی کلیدهای گروهی با توضیحات تودرتو و لیستی از پارامترهای گروه بندی شده است. توجه داشته باشید که هر کلید گروه باید در سطح جهانی منحصر به فرد باشد.

به عنوان مثال، در اینجا گزیده ای از یک ویرایش الگو است که گروه پارامتر "new menu" را با یک پارامتر، pumpkin_spice_season می کند:

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

انواع قانون شرط

انواع قوانین زیر در کنسول Firebase پشتیبانی می شوند. عملکرد معادل در Remote Config REST API موجود است، همانطور که در مرجع عبارت شرطی توضیح داده شده است.

نوع قانون اپراتور(های) ارزش های) توجه داشته باشید
برنامه == از لیستی از شناسه های برنامه برای برنامه های مرتبط با پروژه Firebase خود انتخاب کنید. وقتی برنامه‌ای را به Firebase اضافه می‌کنید، یک شناسه بسته یا نام بسته Android را وارد می‌کنید که مشخصه‌ای را تعریف می‌کند که به عنوان شناسه برنامه در قوانین پیکربندی از راه دور نشان داده می‌شود.

از این ویژگی به صورت زیر استفاده کنید:
  • برای پلتفرم های اپل: از CFBundleIdentifier برنامه استفاده کنید. می‌توانید Bundle Identifier را در تب General برای هدف اصلی برنامه‌تان در Xcode پیدا کنید.
  • برای Android: از applicationId برنامه استفاده کنید. می توانید applicationId را در فایل build.gradle در سطح برنامه خود بیابید.
نسخه برنامه برای مقادیر رشته:
دقیقا مطابقت دارد
حاوی،
شامل نمی شود،
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

نسخه(های) برنامه خود را برای هدف گذاری مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه Android/Apple مرتبط با پروژه Firebase خود استفاده کنید.

برای پلتفرم های اپل: از CFBundleShortVersionString برنامه استفاده کنید.

توجه: مطمئن شوید که برنامه Apple شما از Firebase پلتفرم Apple SDK نسخه 6.24.0 یا بالاتر استفاده می کند، زیرا CFBundleShortVersionString در نسخه های قبلی ارسال نمی شود (به یادداشت های انتشار مراجعه کنید).

برای Android: از نسخه نام برنامه استفاده کنید.

مقایسه رشته ها برای این قانون به حروف کوچک و بزرگ حساس است. هنگام استفاده از عملگر دقیقا مطابق ، حاوی ، حاوی ، یا عبارت منظم ، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

شماره ساخت برای مقادیر رشته:
دقیقا مطابقت دارد
حاوی،
شامل نمی شود،
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

ساخت(های) برنامه خود را برای هدف گذاری مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه Apple یا Android مرتبط با پروژه Firebase خود استفاده کنید.

این اپراتور فقط برای برنامه های اپل و اندروید در دسترس است. این مربوط به CFBundleVersion برنامه برای اپل و نسخه کد برای اندروید است. مقایسه رشته ها برای این قانون به حروف کوچک و بزرگ حساس است.

هنگام استفاده از عملگر دقیقا مطابق ، حاوی ، حاوی ، یا عبارت منظم ، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

سکو == iOS
اندروید
وب
سیستم عامل ==

سیستم عامل (های) مورد نظر را مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر سیستم عامل و نسخه آن با مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین به true ارزیابی می شود.
مرورگر ==

مرورگر(های) مورد نظر را مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر مرورگر و نسخه آن با مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین به true ارزیابی می شود.
دسته دستگاه است، نیست سیار این قانون ارزیابی می کند که آیا دستگاهی که به برنامه وب شما دسترسی پیدا می کند تلفن همراه یا غیر همراه (رومیزی یا کنسول) است. این نوع قانون فقط برای برنامه های وب در دسترس است.
زبان ها هست در یک یا چند زبان را انتخاب کنید. اگر آن نمونه برنامه روی دستگاهی نصب شده باشد که از یکی از زبان های فهرست شده استفاده می کند، این قانون برای یک نمونه برنامه معین true ارزیابی می شود.
کشور/منطقه هست در یک یا چند منطقه یا کشور را انتخاب کنید. اگر نمونه در هر یک از مناطق یا کشورهای فهرست شده باشد، این قانون برای یک نمونه برنامه معین true ارزیابی می شود. کد کشور دستگاه با استفاده از آدرس IP دستگاه در درخواست یا کد کشور تعیین شده توسط Firebase Analytics (اگر داده های Analytics با Firebase به اشتراک گذاشته شده است) تعیین می شود.
مخاطبان کاربر حداقل شامل یک مورد است یک یا چند مورد را از فهرست مخاطبان Google Analytics که برای پروژه خود تنظیم کرده اید، انتخاب کنید.

این قانون برای انتخاب برنامه مرتبط با پروژه Firebase شما به یک قانون App ID نیاز دارد.

توجه: از آنجایی که بسیاری از مخاطبان Analytics توسط رویدادها یا ویژگی‌های کاربر تعریف می‌شوند، که می‌تواند بر اساس اقدامات کاربران برنامه باشد، ممکن است مدتی طول بکشد تا یک قانون کاربر در مخاطب برای یک نمونه برنامه خاص اعمال شود.

دارایی کاربر برای مقادیر رشته:
حاوی،
شامل نمی شود،
دقیقا مطابقت دارد
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

توجه: در کلاینت، فقط می‌توانید مقادیر رشته‌ای را برای ویژگی‌های کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده می کنند، Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/فلوت تبدیل می کند.
از لیستی از ویژگی‌های کاربر Google Analytics موجود را انتخاب کنید. برای اینکه بدانید چگونه می‌توانید از ویژگی‌های کاربر برای سفارشی کردن برنامه خود برای بخش‌های بسیار خاصی از پایگاه کاربری خود استفاده کنید، به پیکربندی از راه دور و ویژگی‌های کاربر مراجعه کنید.

برای کسب اطلاعات بیشتر در مورد ویژگی های کاربر، به راهنمای زیر مراجعه کنید:

هنگامی که از عملگر دقیقا مطابقت دارد، حاوی ، حاوی نیست یا عبارت منظم استفاده می کنید، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

توجه: ویژگی های کاربر جمع آوری شده به صورت خودکار در حال حاضر هنگام ایجاد شرایط پیکربندی از راه دور در دسترس نیستند.
کاربر در صدک تصادفی <=، > 0-100

از این فیلد برای اعمال تغییر در نمونه تصادفی از نمونه های برنامه (با اندازه نمونه به کوچکی 0.0001%) استفاده کنید، با استفاده از عملگرهای <= و > برای تقسیم کاربران (نمونه های برنامه) به گروه ها.

طبق کلیدی که در آن پروژه تعریف شده است، هر نمونه برنامه به طور مداوم به یک عدد کامل یا کسری تصادفی نگاشت می شود. یک قانون از کلید پیش فرض (که در کنسول Firebase به عنوان DEF نشان داده شده است) استفاده می کند، مگر اینکه کلید دیگری را انتخاب یا ایجاد کنید. می توانید با پاک کردن Randomize users با استفاده از این فیلد کلید ، یک قانون را به استفاده از کلید پیش فرض برگردانید. می‌توانید از یک کلید در بین قوانین استفاده کنید تا به طور مداوم به همان نمونه‌های برنامه در محدوده درصد معین رسیدگی کنید. یا، می‌توانید با ایجاد یک کلید جدید، گروه جدیدی از نمونه‌های برنامه را که به‌طور تصادفی اختصاص داده شده‌اند، برای محدوده درصد معینی انتخاب کنید.

به عنوان مثال، برای ایجاد دو شرط مرتبط که هر کدام برای 5٪ از کاربران برنامه غیرهمپوشانی اعمال می شود، می توانید یک شرط شامل قانون <= 5٪ ، و شرط دیگر شامل قانون > 5٪ و <= باشد. قانون 10 درصد برای اینکه برخی از کاربران به صورت تصادفی در هر دو گروه ظاهر شوند، از کلیدهای مختلف برای قوانین در هر شرایط استفاده کنید.

بخش وارداتی هست در یک یا چند بخش وارد شده را انتخاب کنید. این قانون مستلزم راه‌اندازی بخش‌های وارداتی سفارشی است.
وقت قرار قبل و بعد از تاریخ و زمان مشخص، یا در منطقه زمانی دستگاه یا منطقه زمانی مشخصی مانند "(GMT+11) ساعت سیدنی." زمان فعلی را با زمان واکشی دستگاه مقایسه می کند.
شناسه نصب هست در یک یا چند شناسه نصب (حداکثر 50) را برای هدف تعیین کنید. اگر شناسه نصب در لیست مقادیر جدا شده با کاما باشد، این قانون برای یک نصب معین true ارزیابی می شود.

برای آشنایی با نحوه دریافت شناسه های نصب، به بازیابی شناسه های سرویس گیرنده مراجعه کنید.

جستجوی پارامترها و شرایط

می توانید کلیدهای پارامتر، مقادیر پارامتر و شرایط پروژه خود را از کنسول Firebase با استفاده از کادر جستجو در بالای برگه Remote Config Parameters جستجو کنید.

محدودیت در پارامترها و شرایط

در یک پروژه Firebase، می توانید تا 2000 پارامتر و حداکثر 500 شرایط داشته باشید. کلیدهای پارامتر می توانند حداکثر 256 کاراکتر داشته باشند، باید با نویسه زیرخط یا حروف انگلیسی (AZ، az) شروع شوند و ممکن است شامل اعداد نیز باشند. طول کل رشته های مقدار پارامتر در یک پروژه نمی تواند از 1,000,000 کاراکتر تجاوز کند.

مشاهده تغییرات پارامترها و شرایط

می‌توانید آخرین تغییرات در قالب‌های Remote Config خود را از کنسول Firebase مشاهده کنید. برای هر پارامتر و شرایط فردی، می توانید:

  • مشاهده نام کاربری که آخرین بار پارامتر یا شرط را تغییر داده است.

  • اگر تغییر در همان روز رخ داده است، تعداد دقیقه ها یا ساعت هایی را که از زمان انتشار تغییر در قالب فعال Remote Config گذشته است را مشاهده کنید.

  • اگر تغییر یک یا چند روز در گذشته رخ داده است، تاریخ انتشار تغییر در قالب فعال Remote Config را مشاهده کنید.

به روز رسانی پارامترها

در صفحه Remote Config Parameters ، ستون آخرین منتشر شده آخرین کاربری را که هر پارامتر را تغییر داده و آخرین تاریخ انتشار برای تغییر را نشان می دهد:

  • برای مشاهده فراداده تغییر برای پارامترهای گروه بندی شده، گروه پارامتر را گسترش دهید.

  • برای مرتب‌سازی به ترتیب صعودی یا نزولی بر اساس تاریخ انتشار، روی برچسب ستون آخرین منتشر شده کلیک کنید.

به روز رسانی شرایط

در صفحه Remote Config Conditions ، می‌توانید آخرین کاربری را که شرایط را تغییر داده و تاریخی را که آن را تغییر داده است، در کنار آخرین تغییر در زیر هر شرط ببینید.

مراحل بعدی

برای شروع پیکربندی پروژه Firebase خود، به تنظیم پروژه پیکربندی از راه دور Firebase مراجعه کنید.