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

התחל בעבודה עם תצורה מרחוק של Firebase

אתה יכול להשתמש ב-Firebase Remote Config כדי להגדיר פרמטרים באפליקציה שלך ולעדכן את הערכים שלהם בענן, מה שמאפשר לך לשנות את המראה וההתנהגות של האפליקציה שלך מבלי להפיץ עדכון לאפליקציה. מדריך זה יסביר לך דרך שלבים לתחילת העבודה ומספק בקוד לדוגמה, כל אחד מהם זמין לשבט או להורדה firebase / QuickStart-אנדרואיד GitHub מאגר.

הוסף את Firebase ואת ה-Remote Config SDK לאפליקציה שלך

  1. אם לא עשית זאת עדיין, להוסיף Firebase לפרויקט Android שלך .

  2. עבור Config מרחוק, Google Analytics נדרש עבור המיקוד המותנה של מקרי אפליקציה כדי מאפייני משתמש, קהלים, ותחזיות Firebase. ודא שאתה מאפשר ל- Google Analytics בפרויקט שלך.

  3. באמצעות BOM אנדרואיד Firebase , להכריז על התלות של הספרייה אנדרואיד Config מרחוק במודול שלך (ברמת האפליקציה) קובץ Gradle (בדרך כלל app/build.gradle ).

    כמו כן, כחלק מהגדרת Analytics, עליך להוסיף את Firebase SDK עבור Google Analytics לאפליקציה שלך.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
    
        // 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'
    }
    

    באמצעות Firebase אנדרואיד BOM , האפליקציה שלך תמיד ישתמשו גירסאות תואמות של ספריות אנדרואיד Firebase.

    (אלטרנטיבי) הצהר תלות הספרייה Firebase ללא שימוש BOM

    אם תבחר שלא להשתמש ב-Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.

    שים לב שאם אתה משתמש בספריות 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'
    }
    

    קוטלין+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
    
        // 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'
    }
    

    באמצעות Firebase אנדרואיד BOM , האפליקציה שלך תמיד ישתמשו גירסאות תואמות של ספריות אנדרואיד Firebase.

    (אלטרנטיבי) הצהר תלות הספרייה Firebase ללא שימוש BOM

    אם תבחר שלא להשתמש ב-Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.

    שים לב שאם אתה משתמש בספריות 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

קבל מופע של אובייקט Config Remote והגדר את מרווח האחזור המינימלי כדי לאפשר רענון תכוף:

Java

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)

אובייקט הסינגלטון משמש לאחסון ערכי ברירת מחדל של פרמטרים בתוך האפליקציה, לשליפה של ערכי פרמטרים מעודכנים מהקצה האחורי ולבקר מתי ערכים שנשלפו יהיו זמינים לאפליקציה שלך.

במהלך הפיתוח, מומלץ להגדיר מרווח אחזור מינימלי נמוך יחסית. ראה Throttling לקבלת מידע נוסף.

הגדר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה

אתה יכול להגדיר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה באובייקט Config Remote, כך שהאפליקציה שלך תתנהג כמתוכנן לפני שהיא מתחברת ל-Remote Config Backend, וכך ערכי ברירת מחדל זמינים אם אף אחד מהם לא מוגדר ב-backend.

  1. גדר סט של שמות פרמטר וערכי פרמטר ברירת מחדל באמצעות מפת אובייקט או קובץ משאב XML מאוחסן באפליקצית res/xml תיקייה. את התצורה מרחוק QuickStart שימושי אפליקציה ומדגם קובץ XML להגדיר שמות פרמטר ברירת מחדל וערכים.
  2. להוסיף את הערכים הללו אל האובייקט Config מרחוק באמצעות setDefaultsAsync(int) , כמוצג:

Java

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

קוטלין+KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

קבל ערכי פרמטרים לשימוש באפליקציה שלך

כעת אתה יכול לקבל ערכי פרמטרים מהאובייקט Remote Config. אם אתה מגדיר ערכים בקצה העורפי, מביא אותם ואז מפעיל אותם, הערכים האלה זמינים לאפליקציה שלך. אחרת, אתה מקבל את ערכי הפרמטרים בתוך אפליקציה מוגדר באמצעות setDefaultsAsync(int) . כדי לקבל את הערכים האלה, קרא לשיטה הרשומה למטה שממפה את סוג הנתונים הצפוי על ידי האפליקציה שלך, ומספק את מפתח הפרמטר כארגומנט:

הגדר ערכי פרמטרים ב-Remote Config Backend

שימוש Firebase הקונסולה או APIs backend Config מרחוק , אתה יכול ליצור ערכי ברירת מחדל בצד השרת חדשים לעקוף את ערכי in-app פי היגיון או ההוראות המותנים רצוי מיקוד. סעיף זה מתאר את השלבים של מסוף Firebase ליצירת ערכים אלה.

  1. בשנות ה קונסולת Firebase , לפתוח את הפרויקט שלך.
  2. בחר מרחוק Config מהתפריט כדי להציג את לוח המחוונים Config מרחוק.
  3. הגדר פרמטרים עם אותם שמות כמו הפרמטרים שהגדרת באפליקציה שלך. עבור כל פרמטר, אתה יכול להגדיר ערך ברירת מחדל (שבסופו של דבר יעקוף את ערך ברירת המחדל המקביל בתוך האפליקציה), ותוכל גם להגדיר ערכים מותנים. כדי ללמוד עוד, ראה מרחוק פרמטרים Config והגבלות .

אחזר והפעל ערכים

  1. כדי להביא את ערכי הפרמטרים מן backend Config מרחוק, קוראים fetch() שיטה. כל הערכים שתגדיר ב-backend נשלפים ומאוחסנים באובייקט התצורה המרוחקת.
  2. כדי להפוך ערכי פרמטרים נמשכו לרשות האפליקציה שלך, קורא activate() השיטה.

    במקרים שבהם אתה רוצה להביא ולהפעיל הערכים שיחה אחת, אתה יכול להשתמש fetchAndActivate() בקשה להביא ערכים מן backend Config מרחוק ולהפוך אותם לזמינים באפליקציה:

    Java

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

מכיוון שערכי הפרמטרים המעודכנים האלה משפיעים על ההתנהגות והמראה של האפליקציה שלך, עליך להפעיל את הערכים שנשלפו בזמן שמבטיח חוויה חלקה למשתמש שלך, כמו בפעם הבאה שהמשתמש יפתח את האפליקציה שלך. ראה אסטרטגיות טעינת Config מרחוק למידע נוסף ודוגמאות.

מצערת

אם אפליקציה מביאה פעמים רבות מדי בתוך פרק זמן קצר, להביא השיחות throttled ואת SDK חוזר FirebaseRemoteConfigFetchThrottledException . לפני גרסה 17.0.0 של SDK, המגבלה הייתה 5 בקשות אחזור בחלון של 60 דקות (לגרסאות חדשות יותר יש מגבלות מתירניות יותר).

במהלך פיתוח האפליקציה, ייתכן שתרצה לאחזר ולהפעיל הגדרות בתדירות גבוהה מאוד (פעמים רבות בשעה) כדי לאפשר לך לבצע חזרה מהירה תוך כדי פיתוח ובדיקת האפליקציה. כדי להתאים איטרציה מהירה על פרויקט עם עד 10 מפתחים, אתה יכול להגדיר באופן זמני FirebaseRemoteConfigSettings להתנגד עם מינימום נמוך מרווח אחזור ( setMinimumFetchIntervalInSeconds ) באפליקציה.

מרווח האחזור המינימלי המוגדר כברירת מחדל עבור Config מרחוק הוא 12 שעות, מה שאומר שתצורות לא יובאו מהקצה העורפי יותר מפעם אחת בחלון של 12 שעות, ללא קשר למספר שיחות האחזור שבוצעו בפועל. באופן ספציפי, מרווח האחזור המינימלי נקבע בסדר הבא:

  1. הפרמטר ב fetch(long)
  2. הפרמטר ב FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. ערך ברירת המחדל הוא 12 שעות

כדי להגדיר את מינימום מרווח יחזור לערך מותאם אישית, השימוש FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

הצעדים הבאים

אם לא עשית זאת עדיין, לחקור את Remote Config מקרי שימוש , ו תסתכל כמה ממושגי המפתח ותיעוד אסטרטגיות מתקדמים, כולל: