Catch up on everthing we announced at this year's Firebase Summit. Learn more

با Firebase Remote Config شروع به کار کنید

می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را از طریق مراحل برای شروع و برخی از نمونه کد فراهم می کند، که همه آنها در دسترس است به کلون کردن و یا دانلود از است فایربیس / شروع سریع اندروید گیتهاب مخزن.

Firebase و Remote Config SDK را به برنامه خود اضافه کنید

  1. اگر شما در حال حاضر، اضافه فایربیس به پروژه آندروید خود را .

  2. برای از راه دور پیکربندی، Google Analytics را برای مورد نیاز است هدف قرار دادن مشروط نمونه برنامه به خواص کاربر، مخاطبان، و پیش بینی فایربیس. اطمینان حاصل کنید که گوگل آنالیز را قادر می سازد در پروژه شما.

  3. با استفاده از فایربیس آندروید BOM ، اعلام وابستگی برای کنترل از راه دور کتابخانه پیکربندی آندروید در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle ).

    همچنین، به عنوان بخشی از تنظیم Analytics، باید Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید.

    جاوا

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

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

    dependencies {
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config:21.0.1'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

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

    dependencies {
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config-ktx:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    

شئ Remote Config singleton را دریافت کنید

یک نمونه شی Remote Config دریافت کنید و حداقل فاصله واکشی را تنظیم کنید تا امکان تجدید مکرر وجود داشته باشد:

جاوا

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

کاتلین + KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

شی singleton برای ذخیره مقادیر پارامترهای پیش‌فرض درون برنامه، واکشی مقادیر پارامترهای به‌روزشده از باطن، و کنترل زمانی که مقادیر واکشی شده در دسترس برنامه شما قرار می‌گیرد، استفاده می‌شود.

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

مقادیر پارامترهای پیش‌فرض درون برنامه را تنظیم کنید

می‌توانید مقادیر پارامترهای پیش‌فرض درون برنامه‌ای را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به پشتیبان Remote Config همانطور که در نظر گرفته شده است رفتار کند، و اگر مقادیر پیش‌فرض در backend تنظیم نشده باشد، در دسترس باشند.

  1. تعریف مجموعه ای از نام پارامتر و مقدار پارامتر پیش فرض با استفاده از یک نقشه شیء یا یک فایل منبع XML ذخیره شده در برنامه خود را res/xml پوشه. کنترل از راه دور پیکربندی کلید شروع سریع برنامه با استفاده از نمونه فایل XML برای تعریف نام پارامتر به طور پیش فرض و ارزش ها.
  2. اضافه کردن این ارزش ها به شی پیکربندی از راه دور با استفاده از setDefaultsAsync(int) ، به عنوان نشان داده شده است:

جاوا

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

کاتلین + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید

اکنون می توانید مقادیر پارامتر را از شی Remote Config دریافت کنید. اگر مقادیری را در backend تنظیم کنید، آنها را واکشی کنید و سپس آنها را فعال کنید، این مقادیر برای برنامه شما در دسترس هستند. در غیر این صورت، شما در در برنامه مقادیر پارامتر با استفاده از پیکربندی از setDefaultsAsync(int) . برای دریافت این مقادیر، روش فهرست شده در زیر را فراخوانی کنید که با نوع داده مورد انتظار برنامه شما مطابقت دارد و کلید پارامتر را به عنوان آرگومان ارائه می دهد:

مقادیر پارامترها را در Remote Config تنظیم کنید

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

  1. در فایربیس کنسول ، باز کردن پروژه شما.
  2. انتخاب کنید از راه دور پیکربندی از منوی به نمایش داشبورد پیکربندی از راه دور.
  3. پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، می‌توانید یک مقدار پیش‌فرض تنظیم کنید (که در نهایت مقدار پیش‌فرض درون برنامه مربوطه را لغو می‌کند)، و همچنین می‌توانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر، نگاه کنید به راه دور پیکربندی پارامترهای و شرایط .

مقادیر را واکشی و فعال کنید

  1. به بهانه مقادیر پارامتر از باطن پیکربندی از راه دور، با fetch() روش. هر مقداری که در backend تنظیم می کنید در شی Remote Config واکشی و ذخیره می شود.
  2. برای اینکه مقادیر پارامتر ذهن دسترس به برنامه خود، پاسخ activate() روش.

    برای موارد که در آن شما می خواهید برای واکشی و فعال مقادیر در یک تماس، شما می توانید یک استفاده fetchAndActivate() درخواست به بهانه ارزش از باطن پیکربندی از راه دور و آنها را در دسترس به برنامه:

    جاوا

    mFirebaseRemoteConfig.fetchAndActivate()
            .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        boolean updated = task.getResult();
                        Log.d(TAG, "Config params updated: " + updated);
                        Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
                                Toast.LENGTH_SHORT).show();
    
                    } else {
                        Toast.makeText(MainActivity.this, "Fetch failed",
                                Toast.LENGTH_SHORT).show();
                    }
                    displayWelcomeMessage();
                }
            });

    کاتلین + KTX

    remoteConfig.fetchAndActivate()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    val updated = task.result
                    Log.d(TAG, "Config params updated: $updated")
                    Toast.makeText(this, "Fetch and activate succeeded",
                            Toast.LENGTH_SHORT).show()
                } else {
                    Toast.makeText(this, "Fetch failed",
                            Toast.LENGTH_SHORT).show()
                }
                displayWelcomeMessage()
            }

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

گاز دادن

اگر برنامه بازخوانی چندین بار در یک دوره زمانی کوتاه، واکشی تماس متوقف می شود و SDK گرداند FirebaseRemoteConfigFetchThrottledException . قبل از SDK نسخه 17.0.0، حد مجاز 5 درخواست واکشی در یک پنجره 60 دقیقه ای بود (نسخه های جدید محدودیت های مجاز بیشتری دارند).

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

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

  1. پارامتر در fetch(long)
  2. پارامتر در FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. مقدار پیش فرض 12 ساعت

به مجموعه ای از حداقل فاصله زمانی واکشی به یک مقدار سفارشی، استفاده از FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

مراحل بعدی

اگر شما در حال حاضر، کشف راه دور پیکربندی موارد استفاده ، و نگاهی به برخی از مفاهیم کلیدی و پیشرفته مستندات استراتژی، از جمله: