Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

ابدأ مع Firebase Remote Config على Android

يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة ، مما يسمح لك بتعديل مظهر وسلوك تطبيقك دون توزيع تحديث للتطبيق. يرشدك هذا الدليل خلال الخطوات للبدء ويقدم بعض نماذج التعليمات البرمجية ، وكلها متاحة للنسخ أو التنزيل من مستودع GitHub / quickstart-android في firebase.

أضف Firebase و Remote Config SDK إلى تطبيقك

  1. أضف Firebase إلى مشروع Android ، إذا لم تكن قد قمت بذلك بالفعل.

  2. بالنسبة إلى Remote Config ، يلزم Google Analytics للاستهداف المشروط لمثيلات التطبيق لخصائص المستخدم والجماهير وتوقعات Firebase. تأكد من تمكين Google Analytics في مشروعك.

  3. أضف تبعية مكتبة Android Config عن بُعد إلى ملف Gradle (على مستوى التطبيق) الخاص بالوحدة النمطية (عادةً app/build.gradle ).

    أيضًا ، كجزء من إعداد Analytics ، تحتاج إلى إضافة Firebase SDK لـ Google Analytics إلى تطبيقك.

    جافا

    implementation 'com.google.firebase:firebase-config:19.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
    

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-config-ktx:19.2.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
    

احصل على كائن مفرد التكوين البعيد

احصل على مثيل كائن Remote Config وقم بتعيين الحد الأدنى لفاصل الجلب للسماح بالتحديثات المتكررة:

جافا

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

Kotlin + KTX

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

يتم استخدام الكائن المفرد لتخزين قيم المعلمات الافتراضية داخل التطبيق ، وجلب قيم المعلمات المحدثة من الواجهة الخلفية ، والتحكم في وقت إتاحة القيم التي تم جلبها لتطبيقك.

أثناء التطوير ، يوصى بتعيين حد أدنى منخفض نسبيًا لفترة الجلب. انظر Throttling لمزيد من المعلومات.

تعيين قيم المعلمات الافتراضية داخل التطبيق

يمكنك تعيين قيم المعلمات الافتراضية داخل التطبيق في كائن Remote Config ، بحيث يعمل تطبيقك على النحو المنشود قبل أن يتصل بالواجهة الخلفية لـ Remote Config ، وبذلك تكون القيم الافتراضية متاحة إذا لم يتم تعيين أي منها في الخلفية.

  1. حدد مجموعة من أسماء المعلمات وقيم المعلمات الافتراضية باستخدام كائن Map أو ملف مورد XML المخزن في مجلد res/xml لتطبيقك. يستخدم نموذج التطبيق Remote Config quickstart ملف XML لتحديد أسماء وقيم المعلمات الافتراضية.
  2. أضف هذه القيم إلى كائن Remote Config باستخدام setDefaultsAsync (int) ، كما هو موضح:

جافا

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

احصل على قيم المعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المعلمات من كائن Remote Config. إذا قمت بتعيين القيم في الواجهة الخلفية ، وجلبها ، ثم تنشيطها ، فستتوفر هذه القيم لتطبيقك. خلاف ذلك ، تحصل على قيم المعلمات داخل التطبيق التي تم تكوينها باستخدام setDefaultsAsync (int) . للحصول على هذه القيم ، اتصل بالطريقة المدرجة أدناه التي تعين نوع البيانات الذي يتوقعه تطبيقك ، مع توفير مفتاح المعلمة كوسيطة:

قم بتعيين قيم المعلمات في الواجهة الخلفية لـ Remote Config

باستخدام وحدة تحكم Firebase أو واجهات برمجة التطبيقات الخلفية للتكوين عن بُعد ، يمكنك إنشاء قيم افتراضية جديدة من جانب الخادم تتجاوز القيم داخل التطبيق وفقًا للمنطق الشرطي المطلوب أو استهداف المستخدم. يرشدك هذا القسم خلال خطوات وحدة تحكم Firebase لإنشاء هذه القيم.

  1. في وحدة تحكم Firebase ، افتح مشروعك.
  2. حدد Remote Config من القائمة لعرض لوحة معلومات Remote Config.
  3. حدد المعلمات بنفس الأسماء مثل المعلمات التي حددتها في تطبيقك. لكل معلمة ، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية المقابلة داخل التطبيق) ، ويمكنك أيضًا تعيين القيم الشرطية. لمعرفة المزيد ، راجع معلمات وشروط التكوين عن بُعد .

إحضار القيم وتنشيطها

  1. لجلب قيم المعلمات من الواجهة الخلفية لـ Remote Config ، قم باستدعاء طريقة fetch () . يتم جلب أي قيم تقوم بتعيينها في الواجهة الخلفية وتخزينها في كائن Remote Config.
  2. لإتاحة قيم المعلمات التي تم جلبها لتطبيقك ، اتصل بطريقة التنشيط () .

    في الحالات التي تريد فيها جلب القيم وتنشيطها في مكالمة واحدة ، يمكنك استخدام طلب fetchAndActivate() لجلب القيم من الواجهة الخلفية لـ Remote Config وجعلها متاحة للتطبيق:

    جافا

    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();
                }
            });

    Kotlin + 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()
            }

نظرًا لأن قيم المعلمات المحدّثة هذه تؤثر في سلوك ومظهر تطبيقك ، يجب عليك تنشيط القيم التي تم جلبها في وقت يضمن تجربة سلسة للمستخدم ، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. راجع استراتيجيات تحميل Remote Config للحصول على مزيد من المعلومات والأمثلة.

خانق

إذا تم جلب التطبيق عدة مرات في فترة زمنية قصيرة ، فسيتم تقييد استدعاءات الجلب وتعيد SDK FirebaseRemoteConfigFetchThrottledException . قبل الإصدار 17.0.0 من SDK ، كان الحد الأقصى هو 5 طلبات إحضار في إطار 60 دقيقة (الإصدارات الأحدث لها حدود أكثر تساهلاً).

أثناء تطوير التطبيق ، قد ترغب في جلب وتفعيل التكوينات بشكل متكرر (عدة مرات في الساعة) للسماح لك بالتكرار بسرعة أثناء تطوير واختبار تطبيقك. لاستيعاب التكرار السريع في مشروع مع ما يصل إلى 10 المطورين، يمكنك تعيين مؤقتا FirebaseRemoteConfigSettings الاعتراض بحد أدنى منخفض جلب الفاصلة ( setMinimumFetchIntervalInSeconds ) في التطبيق الخاص بك.

الحد الأدنى لفاصل الجلب الافتراضي لـ Remote Config هو 12 ساعة ، مما يعني أنه لن يتم جلب التكوينات من الواجهة الخلفية أكثر من مرة واحدة في إطار 12 ساعة ، بغض النظر عن عدد استدعاءات الجلب التي تم إجراؤها بالفعل. على وجه التحديد ، يتم تحديد الحد الأدنى لفترة الجلب بالترتيب التالي:

  1. المعلمة في fetch(long)
  2. المعلمة في FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. القيمة الافتراضية 12 ساعة

لتعيين الحد الأدنى لفترة الجلب إلى قيمة مخصصة ، استخدم FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

الخطوات التالية

إذا لم تكن قد قمت بذلك بالفعل ، فاستكشف حالات استخدام Remote Config ، وألق نظرة على بعض المفاهيم الأساسية ووثائق الاستراتيجيات المتقدمة ، بما في ذلك: