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

เริ่มต้นใช้งาน Firebase Remote Config

คุณใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ได้ ช่วยให้คุณปรับเปลี่ยนลักษณะและการทำงานของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะเดินคุณผ่านขั้นตอนการเริ่มต้นและให้รหัสตัวอย่างบางส่วนซึ่งทั้งหมดนี้สามารถใช้ได้กับโคลนหรือดาวน์โหลดได้จาก Firebase / QuickStart-หุ่นยนต์ GitHub พื้นที่เก็บข้อมูล

เพิ่ม Firebase และ Remote Config SDK ให้กับแอปของคุณ

  1. หากคุณยังไม่ได้ เพิ่ม Firebase กับโครงการ Android ของคุณ

  2. สำหรับระยะไกล Config, Google Analytics เป็นสิ่งจำเป็นสำหรับ การกำหนดเป้าหมายตามเงื่อนไขของอินสแตนซ์แอป กับคุณสมบัติของผู้ชมและการคาดการณ์ Firebase ตรวจสอบให้แน่ใจว่าคุณ เปิดใช้งาน Google Analytics ในโครงการของคุณ

  3. ใช้ Firebase Android BoM ประกาศพึ่งพาสำหรับระยะไกลห้องสมุด Config Android ในโมดูลของคุณ (app ระดับ) ไฟล์ 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.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'
    }
    

    โดยใช้ Firebase Android BoM แอปของคุณมักจะใช้รุ่นที่รองรับการห้องสมุด Firebase Android

    (ทางเลือก) ประกาศ 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.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'
    }
    

    โดยใช้ Firebase Android BoM แอปของคุณมักจะใช้รุ่นที่รองรับการห้องสมุด Firebase Android

    (ทางเลือก) ประกาศ 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'
    }
    

รับออบเจ็กต์ Singleton Config ระยะไกล

รับอินสแตนซ์ออบเจ็กต์ Remote Config และตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำเพื่อให้สามารถรีเฟรชได้บ่อยครั้ง:

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)

ออบเจ็กต์ซิงเกิลตันใช้เพื่อเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์ และควบคุมเมื่อทำให้ค่าที่ดึงมาพร้อมใช้งานในแอปของคุณ

ในระหว่างการพัฒนา ขอแนะนำให้ตั้งค่าช่วงการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดู ตัวแปร สำหรับข้อมูลเพิ่มเติม

ตั้งค่าพารามิเตอร์เริ่มต้นในแอป

คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปของคุณทำงานตามที่ตั้งใจไว้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config และเพื่อให้ค่าดีฟอลต์พร้อมใช้งานหากไม่มีการตั้งค่าในแบ็กเอนด์

  1. กำหนดชุดของชื่อพารามิเตอร์และค่าพารามิเตอร์เริ่มต้นใช้เป็น แผนที่ วัตถุหรือ แฟ้มทรัพยากร XML เก็บไว้ใน app ของคุณ res/xml โฟลเดอร์ ระยะไกล Config 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) ในการรับค่าเหล่านี้ ให้เรียกใช้เมธอดที่แสดงด้านล่างซึ่งจับคู่กับประเภทข้อมูลที่แอปของคุณคาดหวัง โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์:

ตั้งค่าพารามิเตอร์ในแบ็กเอนด์การกำหนดค่าระยะไกล

ใช้ Firebase คอนโซลหรือ ระยะไกล Config APIs แบ็กเอนด์ คุณสามารถสร้างค่านิยมด้านเซิร์ฟเวอร์เริ่มต้นใหม่ที่แทนที่ค่าในแอปตามตรรกะเงื่อนไขที่คุณต้องการหรือกำหนดเป้าหมายผู้ใช้ ส่วนนี้อธิบายขั้นตอนคอนโซล Firebase เพื่อสร้างค่าเหล่านี้

  1. ใน คอนโซล Firebase เปิดโครงการของคุณ
  2. เลือกระยะไกล Config จากเมนูเพื่อดูแดชบอร์ด Config ระยะไกล
  3. กำหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกำหนดในแอปของคุณ สำหรับแต่ละพารามิเตอร์ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งจะแทนที่ค่าเริ่มต้นในแอพที่สอดคล้องกันในที่สุด) และคุณยังสามารถตั้งค่าตามเงื่อนไขได้อีกด้วย ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ ระยะไกลการกำหนดค่าพารามิเตอร์และเงื่อนไข

ดึงและเปิดใช้งานค่า

  1. สามารถดึงข้อมูลค่าพารามิเตอร์จาก Config แบ็กเอนด์ระยะไกลเรียก fetch() วิธีการ ค่าใดๆ ที่คุณตั้งค่าไว้ในแบ็กเอนด์จะถูกดึงและเก็บไว้ในออบเจ็กต์ Remote Config
  2. เพื่อให้ค่าพารามิเตอร์ที่ดึงมาใช้ได้กับแอปของคุณโทร activate() วิธีการ

    สำหรับกรณีที่คุณต้องการที่จะดึงข้อมูลและเปิดใช้งานค่าในหนึ่งสาย, คุณสามารถใช้ fetchAndActivate() คำขอเพื่อดึงค่าจาก Config แบ็กเอนด์ระยะไกลและทำให้พวกเขาพร้อมที่จะ app:

    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 สำหรับข้อมูลเพิ่มเติมและตัวอย่าง

การควบคุมปริมาณ

หากแอปเรียกหลายครั้งเกินไปในช่วงเวลาสั้น ๆ ดึงสายจะผ่อนคันเร่งและผลตอบแทน SDK FirebaseRemoteConfigFetchThrottledException ก่อน SDK เวอร์ชัน 17.0.0 ขีดจำกัดคือ 5 คำขอดึงข้อมูลในหน้าต่าง 60 นาที (เวอร์ชันที่ใหม่กว่ามีขีดจำกัดที่อนุญาตมากกว่า)

ในระหว่างการพัฒนาแอป คุณอาจต้องการดึงข้อมูลและเปิดใช้งานการกำหนดค่าบ่อยมาก (หลายครั้งต่อชั่วโมง) เพื่อให้คุณสามารถทำซ้ำได้อย่างรวดเร็วในขณะที่คุณพัฒนาและทดสอบแอปของคุณ เพื่อรองรับการทำซ้ำอย่างรวดเร็วในโครงการที่มีถึง 10 นักพัฒนาคุณสามารถตั้งค่าชั่วคราว FirebaseRemoteConfigSettings วัตถุมีขั้นต่ำที่ต่ำดึงข้อมูลช่วงเวลา ( setMinimumFetchIntervalInSeconds ) ในแอป

ช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้นสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงการกำหนดค่าจากแบ็กเอนด์มากกว่าหนึ่งครั้งในหน้าต่าง 12 ชั่วโมง ไม่ว่าจะมีการเรียกการดึงข้อมูลจริงกี่ครั้งก็ตาม โดยเฉพาะอย่างยิ่ง ช่วงเวลาการดึงข้อมูลขั้นต่ำจะถูกกำหนดในลำดับต่อไปนี้:

  1. พารามิเตอร์ในการ fetch(long)
  2. พารามิเตอร์ใน FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. ค่าเริ่มต้น 12 ชั่วโมง

ในการตั้งค่าต่ำสุดที่สามารถดึงข้อมูลช่วงเวลาที่จะคุ้มค่าที่กำหนดเองการใช้ FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)

ขั้นตอนถัดไป

หากคุณยังไม่ได้สำรวจระยะไกล Config กรณีการใช้งาน และใช้เวลาดูที่บางส่วนของแนวคิดหลักและกลยุทธ์เอกสารขั้นสูงรวมถึง: