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 firebase / quickstart-android

เพิ่ม Firebase และ Remote Config SDK ลงในแอปของคุณ

  1. เพิ่ม Firebase ในโปรเจ็กต์ Android ของคุณ หากยังไม่ได้ ทำ

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

  3. ใช้ Firebase Android BoM ประกาศการอ้างอิงสำหรับไลบรารี Remote Config Android ใน ไฟล์ 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:26.6.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 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:20.0.4'
        implementation 'com.google.firebase:firebase-analytics:18.0.2'
    }
    

    โคตรลิน + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:26.6.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 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:20.0.4'
        implementation 'com.google.firebase:firebase-analytics-ktx:18.0.2'
    }
    

รับวัตถุการกำหนดค่าระยะไกลแบบซิงเกิลตัน

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

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)

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

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

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

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

  1. กำหนดชุดชื่อพารามิเตอร์และค่าพารามิเตอร์เริ่มต้นโดยใช้วัตถุ แผนที่ หรือ ไฟล์ทรัพยากร XML ที่ เก็บไว้ในโฟลเดอร์ res/xml ของแอปของคุณ แอปตัวอย่างการเริ่มต้นอย่างรวดเร็วของการกำหนดค่าระยะไกลใช้ ไฟล์ XML เพื่อกำหนดชื่อพารามิเตอร์และค่าเริ่มต้น
  2. เพิ่มค่าเหล่านี้ให้กับวัตถุการกำหนดค่าระยะไกลโดยใช้ setDefaultsAsync (int) ดังที่แสดง:

Java

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

โคตรลิน + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

รับค่าพารามิเตอร์เพื่อใช้ในแอปของคุณ

ตอนนี้คุณสามารถรับค่าพารามิเตอร์จากวัตถุการกำหนดค่าระยะไกล หากคุณตั้งค่าในแบ็กเอนด์ดึงค่าจากนั้นเปิดใช้งานค่าเหล่านั้นจะพร้อมใช้งานสำหรับแอปของคุณ มิฉะนั้นคุณจะได้รับค่าพารามิเตอร์ในแอปที่กำหนดค่าโดยใช้ setDefaultsAsync (int) หากต้องการรับค่าเหล่านี้ให้เรียกใช้เมธอดที่แสดงด้านล่างซึ่งจับคู่กับประเภทข้อมูลที่แอปของคุณคาดหวังโดยให้คีย์พารามิเตอร์เป็นอาร์กิวเมนต์:

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

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

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

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

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

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

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

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

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

หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้น ๆ การเรียกที่ดึงข้อมูลจะถูกควบคุมปริมาณและ 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)

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

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