Remote Config คือชุดพารามิเตอร์และเงื่อนไขที่จัดรูปแบบ JSON ซึ่งคุณสร้างขึ้นสำหรับโปรเจ็กต์ Firebase คุณสร้างเทมเพลตไคลเอ็นต์ที่แอปจะดึงค่ามาใช้ และเทมเพลตเซิร์ฟเวอร์ที่ไคลเอ็นต์เซิร์ฟเวอร์จะดึงค่ามาใช้ได้
ส่วนนี้จะกล่าวถึงเทมเพลตไคลเอ็นต์ หากต้องการดูข้อมูลเกี่ยวกับเทมเพลต เฉพาะเซิร์ฟเวอร์ ให้คลิก เทมเพลตเซิร์ฟเวอร์คุณใช้Firebaseคอนโซลเพื่อแก้ไขและจัดการเทมเพลตได้ ไปที่ DevOps และการมีส่วนร่วม > Remote Config เพื่อดูเนื้อหาของเทมเพลต ในรูปแบบกราฟิกใน หน้าพารามิเตอร์ และ หน้าเงื่อนไข
นอกจากนี้ คุณยังใช้ Remote Config REST API และ Admin SDK หรือ Firebase CLI เพื่อแก้ไขและจัดการ เทมเพลตไคลเอ็นต์ได้ด้วย
ตัวอย่างไฟล์เทมเพลตเซิร์ฟเวอร์
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
คุณสามารถดำเนินการจัดการเวอร์ชันเหล่านี้ในFirebaseคอนโซล (ไปที่ DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล)
- แสดงรายการเวอร์ชันเทมเพลตที่จัดเก็บไว้ทั้งหมด
- ดึงข้อมูลเวอร์ชันที่เฉพาะเจาะจง
- ย้อนกลับไปเป็นเวอร์ชันไคลเอ็นต์ที่เฉพาะเจาะจง
- ลบRemote Configเทมเพลตออกจาก หน้าประวัติการเปลี่ยนแปลง
มีขีดจํากัดรวมของเวอร์ชันที่จัดเก็บตลอดอายุการใช้งาน 300 รายการต่อประเภทเทมเพลต (เทมเพลตฝั่งไคลเอ็นต์ 300 รายการและเทมเพลตฝั่งเซิร์ฟเวอร์ 300 รายการ) ซึ่งรวมถึงหมายเลขเวอร์ชันที่จัดเก็บสําหรับเทมเพลตที่ลบไปแล้ว หากคุณเผยแพร่เทมเพลตมากกว่า 300 เวอร์ชันต่อประเภทเทมเพลตในช่วงอายุของโปรเจ็กต์ ระบบจะลบเวอร์ชันที่เก่าที่สุดออก โดยจะคงไว้ไม่เกิน 300 เวอร์ชันของประเภทนั้น
ทุกครั้งที่คุณอัปเดตพารามิเตอร์ Remote Config จะสร้างเทมเพลต Remote Config ที่มีการกำหนดเวอร์ชันใหม่และจัดเก็บเทมเพลตก่อนหน้าเป็นเวอร์ชันที่คุณสามารถเรียกใช้หรือย้อนกลับได้ตามต้องการ หมายเลขเวอร์ชัน
จะเพิ่มขึ้นตามลำดับจากค่าเริ่มต้นที่จัดเก็บโดย Remote Config
เทมเพลตทั้งหมดจะมีช่อง version ตามที่แสดง ซึ่งมีข้อมูลเมตาเกี่ยวกับเวอร์ชันนั้นๆ
โดยเฉพาะ
คุณลบเทมเพลต Remote Config ได้ตามต้องการในหน้าDevOps และความผูกพัน > การกำหนดค่าระยะไกล > ประวัติการเปลี่ยนแปลง ของคอนโซล Firebase
จัดการRemote Configเวอร์ชันเทมเพลต
ส่วนนี้จะอธิบายวิธีจัดการเวอร์ชันของRemote Config เทมเพลต
แสดงรายการเทมเพลต Remote Config ทุกเวอร์ชันที่จัดเก็บไว้
คุณสามารถดึงรายการ เทมเพลตRemote Configทุกเวอร์ชันที่จัดเก็บไว้ได้ โดยทำดังนี้
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่หน้า DevOps และความผูกพัน > การกำหนดค่าระยะไกล > พารามิเตอร์
เลือกไอคอน "นาฬิกา" ที่แสดงที่ด้านขวาบน
ซึ่งจะเปิดหน้าประวัติการเปลี่ยนแปลง ซึ่งแสดงเวอร์ชันเทมเพลตที่จัดเก็บไว้ทั้งหมดในเมนูรายการทางด้านขวา
รายละเอียดที่แสดงสำหรับแต่ละเวอร์ชันที่จัดเก็บไว้ประกอบด้วยข้อมูลว่าการเปลี่ยนแปลงนั้นมาจาก Console, REST API, การย้อนกลับ หรือเป็นการเปลี่ยนแปลงที่เพิ่มขึ้นจากการบันทึกเทมเพลตแบบบังคับ
Firebase CLI
firebase remoteconfig:versions:list
ใช้ตัวเลือก --limit เพื่อจำกัดจำนวนเวอร์ชันที่จะแสดง
ส่งค่า "0" เพื่อดึงข้อมูลเวอร์ชันทั้งหมด
Node.js
function listAllVersions() { admin.remoteConfig().listVersions() .then((listVersionsResult) => { console.log("Successfully fetched the list of versions"); listVersionsResult.versions.forEach((version) => { console.log('version', JSON.stringify(version)); }); }) .catch((error) => { console.log(error); }); }
Java
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:listVersions
รายการเทมเพลตประกอบด้วยข้อมูลเมตาสำหรับเวอร์ชันที่จัดเก็บทั้งหมด ซึ่งรวมถึง เวลาที่อัปเดต ผู้ใช้ที่ทำการอัปเดต และวิธีการอัปเดต ตัวอย่างองค์ประกอบเวอร์ชัน
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"description": "One small change on the console",
"origin": "CONSOLE",
"update_type": "INCREMENTAL_UPDATE"
}]
}
```
ดึงข้อมูลเทมเพลต Remote Config เวอร์ชันที่เฉพาะเจาะจง
คุณสามารถดึงข้อมูลเวอร์ชันที่จัดเก็บไว้ของRemote Configเทมเพลตที่ต้องการได้ วิธีดึงข้อมูลเทมเพลตเวอร์ชันที่จัดเก็บไว้มีดังนี้
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ หน้าประวัติการเปลี่ยนแปลงใน DevOps และความผูกพัน > การกำหนดค่าระยะไกล
โดยค่าเริ่มต้น หน้าเว็บจะแสดงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน หากต้องการดู เวอร์ชันอื่น ให้เลือกจากแผงรายละเอียดทางด้านขวา
ดูความแตกต่างโดยละเอียดของเทมเพลตที่ใช้งานอยู่และเวอร์ชันอื่นๆ ที่จัดเก็บไว้ โดยวางเมาส์เหนือเมนูตามบริบทสำหรับเวอร์ชันที่ไม่ได้เลือก แล้วเลือกเปรียบเทียบกับเวอร์ชันที่เลือก
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
คุณจะเขียนเอาต์พุตไปยังไฟล์ที่ระบุด้วย -o, FILENAME ก็ได้
Node.js
ส่ง getTemplate()
โดยไม่มีอาร์กิวเมนต์เพื่อดึงข้อมูลเทมเพลตเวอร์ชันล่าสุด
หรือหากต้องการดึงข้อมูลเวอร์ชันที่เฉพาะเจาะจง ให้ใช้ getTemplateAtVersion()
// Get template version: 6 admin.remoteConfig().getTemplateAtVersion('6') .then((template) => { console.log("Successfully fetched the template with ETag: " + template.etag); }) .catch((error) => { console.log(error); });
Java
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?version_number=6
พารามิเตอร์ URL ?version_number ใช้ได้เฉพาะกับการดำเนินการ GET เท่านั้น
คุณจะใช้พารามิเตอร์นี้เพื่อระบุหมายเลขเวอร์ชันสำหรับการอัปเดตไม่ได้ คำขอ get ที่คล้ายกัน
โดยไม่มีพารามิเตอร์ ?version_number
จะดึงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน
ย้อนกลับไปเป็นเทมเพลต Remote Config เวอร์ชันที่จัดเก็บไว้ที่เฉพาะเจาะจง
คุณย้อนกลับไปใช้เทมเพลตเวอร์ชันใดก็ได้ที่จัดเก็บไว้ วิธีย้อนกลับเทมเพลตมีดังนี้
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ หน้าประวัติการเปลี่ยนแปลงใน DevOps และความผูกพัน > การกำหนดค่าระยะไกล
ค้นหาปุ่มตัวเลือกที่ด้านขวาบนของหน้าสำหรับเทมเพลตเวอร์ชันก่อนหน้า ที่มีสิทธิ์ย้อนกลับ
คลิกและยืนยันเฉพาะในกรณีที่คุณแน่ใจว่าต้องการย้อนกลับไปใช้เวอร์ชันนั้นและใช้ค่าเหล่านั้นทันทีสําหรับแอปและผู้ใช้ทั้งหมด
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
Node.js
// Roll back to template version: 6
admin.remoteConfig().rollback('6')
.then((template) => {
console.log("Successfully rolled back to template version 6.");
console.log("New ETag: " + template.etag);
})
.catch((error) => {
console.log('Error trying to rollback:', e);
})
Java
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
REST
หากต้องการย้อนกลับไปใช้เทมเพลต Remote Config ที่จัดเก็บไว้ ให้ส่ง HTTP POST ด้วย
เมธอดที่กำหนดเอง :rollback และในเนื้อหาคำขอ ให้ระบุเวอร์ชันที่ต้องการ
ใช้ เช่น
curl --compressed -D headers -H "Authorization: Bearer token" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:rollback -d '{"version_number": 6}'การตอบกลับจะมีเนื้อหาของเทมเพลตที่จัดเก็บไว้ซึ่งใช้งานอยู่ พร้อมข้อมูลเมตาของเวอร์ชันใหม่
โปรดทราบว่าการดำเนินการย้อนกลับนี้จะสร้าง เวอร์ชันใหม่ที่มีหมายเลข เช่น การย้อนกลับจากเวอร์ชัน 10 เป็นเวอร์ชัน 6 จะสร้างสำเนาใหม่ของเวอร์ชัน 6 ซึ่งแตกต่าง จากเวอร์ชันเดิมตรงที่หมายเลขเวอร์ชันเป็น 11 ระบบจะยังคงจัดเก็บเวอร์ชัน 6 ไว้ (หากยังไม่หมดอายุ) และเวอร์ชัน 11 จะกลายเป็นเทมเพลตที่ใช้งานอยู่
ลบRemote Configเทมเพลต
คุณลบเทมเพลต Remote Config ได้โดยใช้คอนโซล Firebase วิธีลบเทมเพลตมีดังนี้
ในคอนโซล Firebase ให้ไปที่หน้า DevOps และความผูกพัน > การกำหนดค่าระยะไกล > พารามิเตอร์
สลับไปยังเทมเพลตที่ต้องการลบ คลิก
เพิ่มเติม แล้วเลือกลบเมื่อระบบแจ้งให้ยืนยันการลบ ให้คลิกลบ
ดาวน์โหลดและเผยแพร่เทมเพลต Remote Config
ดาวน์โหลดและเผยแพร่เทมเพลต Remote Config เพื่อผสานรวมเข้ากับ การควบคุมแหล่งที่มาและระบบบิลด์ อัปเดตการกำหนดค่าโดยอัตโนมัติ และซิงค์พารามิเตอร์ และค่าในหลายโปรเจ็กต์
คุณสามารถดาวน์โหลดRemote Configเทมเพลต จากคอนโซล Firebase จากนั้นคุณจะอัปเดต ไฟล์ JSON ที่ส่งออกและเผยแพร่ไปยังโปรเจ็กต์เดียวกัน หรือเผยแพร่ไปยังโปรเจ็กต์ใหม่หรือ โปรเจ็กต์ที่มีอยู่ก็ได้
สมมติว่าคุณมีหลายโปรเจ็กต์ที่แสดงถึงขั้นตอนต่างๆ ของวงจรการพัฒนาซอฟต์แวร์ เช่น สภาพแวดล้อมการพัฒนา การทดสอบ การจัดเตรียม และการใช้งานจริง ในกรณีนี้ คุณสามารถโปรโมตเทมเพลตที่ผ่านการทดสอบอย่างเต็มรูปแบบจากสภาพแวดล้อมการจัดเตรียมข้อมูลไปยังสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ได้โดยดาวน์โหลดจากโปรเจ็กต์การจัดเตรียมข้อมูลและเผยแพร่ไปยังโปรเจ็กต์ที่ใช้งานจริง
นอกจากนี้ คุณยังใช้วิธีนี้เพื่อย้ายข้อมูลการกำหนดค่าจากโปรเจ็กต์หนึ่งไปยังอีกโปรเจ็กต์หนึ่ง หรือป้อนข้อมูลพารามิเตอร์และค่าจากโปรเจ็กต์ที่มีอยู่ไปยังโปรเจ็กต์ใหม่ได้ด้วย
พารามิเตอร์และค่าพารามิเตอร์ที่สร้างขึ้นเพื่อเป็นตัวแปรในการA/B Testingทดสอบโดยเฉพาะจะไม่รวมอยู่ในเทมเพลตที่ส่งออก
วิธีส่งออกและนำเข้าRemote Configเทมเพลต
- ดาวน์โหลดRemote Configเทมเพลตการกำหนดค่าปัจจุบัน
- ตรวจสอบRemote Configเทมเพลต
- เผยแพร่Remote Configเทมเพลต
ดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลปัจจุบัน
ใช้ข้อมูลต่อไปนี้เพื่อดาวน์โหลดเทมเพลต Remote Config ที่ใช้งานอยู่ ในรูปแบบ JSON
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ DevOps และความผูกพัน > การกำหนดค่าระยะไกล > หน้าพารามิเตอร์หรือ Conditions
เปิด
เมนู แล้ว เลือกดาวน์โหลดไฟล์กำหนดค่าปัจจุบันเมื่อได้รับข้อความแจ้ง ให้คลิกดาวน์โหลดไฟล์กำหนดค่า เลือกตำแหน่งที่ต้องการ บันทึกไฟล์ แล้วคลิกบันทึก
Firebase CLI
firebase remoteconfig:get -o filename
Node.js
function getTemplate() { var config = admin.remoteConfig(); config.getTemplate() .then(function (template) { console.log('ETag from server: ' + template.etag); var templateStr = JSON.stringify(template); fs.writeFileSync('config.json', templateStr); }) .catch(function (err) { console.error('Unable to get template'); console.error(err); }); }
Java
Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get(); // See the ETag of the fetched template. System.out.println("ETag from server: " + template.getETag());
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
คำสั่งนี้จะแสดงเพย์โหลด JSON ไปยังไฟล์หนึ่ง และส่วนหัว
(รวมถึง ETag) ไปยังไฟล์ headers แยกต่างหาก
ตรวจสอบเทมเพลตการกำหนดค่าระยะไกล
คุณสามารถตรวจสอบการอัปเดตเทมเพลตก่อนเผยแพร่ได้โดยใช้ Firebase Admin SDK หรือ REST API นอกจากนี้ ระบบยังตรวจสอบเทมเพลตเมื่อคุณพยายาม เผยแพร่จาก FirebaseCLI หรือFirebaseคอนโซลกระบวนการตรวจสอบเทมเพลตจะตรวจสอบข้อผิดพลาด เช่น คีย์ที่ซ้ำกันสำหรับ
พารามิเตอร์และเงื่อนไข ชื่อเงื่อนไขที่ไม่ถูกต้องหรือเงื่อนไขที่ไม่มีอยู่ หรือ
ETag ที่จัดรูปแบบไม่ถูกต้อง เช่น คำขอที่มีคีย์มากกว่าจำนวนที่อนุญาต ซึ่งก็คือ 2,000 รายการ จะแสดงข้อความแสดงข้อผิดพลาด Param count too
large
Node.js
function validateTemplate(template) { admin.remoteConfig().validateTemplate(template) .then(function (validatedTemplate) { // The template is valid and safe to use. console.log('Template was valid and safe to use'); }) .catch(function (err) { console.error('Template is invalid and cannot be published'); console.error(err); }); }
Java
try { Template validatedTemplate = FirebaseRemoteConfig.getInstance() .validateTemplateAsync(template).get(); System.out.println("Template was valid and safe to use"); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Template is invalid and cannot be published"); System.out.println(rcError.getMessage()); } }
REST
ตรวจสอบการอัปเดตเทมเพลตโดยการต่อท้ายพารามิเตอร์ของ URL ?validate_only=true
ในคำขอเผยแพร่
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename
หากเทมเพลตผ่านการตรวจสอบแล้ว คำสั่ง curl จะแสดงเทมเพลต JSON ที่คุณส่ง และในไฟล์ headers ที่บันทึกไว้ คุณจะเห็นสถานะ HTTP/2 200 และ ETag ที่อัปเดตแล้วพร้อมด้วยคำต่อท้าย -0 หากเทมเพลต
ไม่ได้รับการตรวจสอบ คุณจะได้รับข้อผิดพลาดในการตรวจสอบในการตอบกลับ
JSON และไฟล์ headers จะมีการตอบกลับที่ไม่ใช่ 200
(และไม่มี ETag)
เผยแพร่เทมเพลต Remote Config
หลังจากดาวน์โหลดเทมเพลต ทำการเปลี่ยนแปลงที่จำเป็นกับเนื้อหา JSON และ ตรวจสอบแล้ว คุณจะเผยแพร่เทมเพลตไปยังโปรเจ็กต์ได้
การเผยแพร่เทมเพลตจะแทนที่เทมเพลตการกำหนดค่าที่มีอยู่ทั้งหมดด้วยไฟล์ที่อัปเดตแล้ว และเพิ่มเวอร์ชันเทมเพลตขึ้น 1 เนื่องจากระบบจะแทนที่การกำหนดค่าทั้งหมด หากคุณลบพารามิเตอร์ออกจากไฟล์ JSON และ เผยแพร่ พารามิเตอร์จะถูกลบออกจากเซิร์ฟเวอร์และไคลเอ็นต์จะใช้พารามิเตอร์นั้นไม่ได้อีกต่อไป
หลังจากเผยแพร่แล้ว การเปลี่ยนแปลงพารามิเตอร์และค่าจะพร้อมใช้งานทันที สำหรับแอปและผู้ใช้ หากจำเป็น คุณสามารถย้อนกลับไปใช้เวอร์ชันก่อนหน้าได้
ใช้คำสั่งต่อไปนี้เพื่อเผยแพร่เทมเพลต
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ DevOps และความผูกพัน > การกำหนดค่าระยะไกล > หน้าพารามิเตอร์หรือ Conditions
เปิด
เมนู แล้วเลือกเผยแพร่จากไฟล์เมื่อมีข้อความแจ้ง ให้คลิกเรียกดู ไปที่และเลือกไฟล์ Remote Configที่ต้องการเผยแพร่ แล้วคลิกเลือก
ระบบจะตรวจสอบไฟล์ และหากสำเร็จ คุณจะคลิกเผยแพร่เพื่อให้การกำหนดค่าพร้อมใช้งานกับแอปและผู้ใช้ได้ทันที
Node.js
function publishTemplate() { var config = admin.remoteConfig(); var template = config.createTemplateFromJSON( fs.readFileSync('config.json', 'UTF8')); config.publishTemplate(template) .then(function (updatedTemplate) { console.log('Template has been published'); console.log('ETag from server: ' + updatedTemplate.etag); }) .catch(function (err) { console.error('Unable to publish template.'); console.error(err); }); }
Java
try { Template publishedTemplate = FirebaseRemoteConfig.getInstance() .publishTemplateAsync(template).get(); System.out.println("Template has been published"); // See the ETag of the published template. System.out.println("ETag from server: " + publishedTemplate.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Unable to publish template."); System.out.println(rcError.getMessage()); } }
REST
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename
สำหรับคำสั่ง curl นี้ คุณสามารถระบุเนื้อหาได้โดยใช้เครื่องหมาย "@"
ตามด้วยชื่อไฟล์
Remote Configการปรับเปลี่ยนในแบบของคุณและเงื่อนไขจะรวมอยู่ในเทมเพลตที่ดาวน์โหลด ดังนั้นคุณควรทราบข้อจำกัดต่อไปนี้เมื่อพยายามเผยแพร่ไปยังโปรเจ็กต์อื่น
คุณจะนำเข้าการปรับเปลี่ยนในแบบของคุณจากโปรเจ็กต์หนึ่งไปยังอีกโปรเจ็กต์หนึ่งไม่ได้
ตัวอย่างเช่น หากคุณเปิดใช้การปรับเปลี่ยนในแบบของคุณในโปรเจ็กต์ และ ดาวน์โหลดและแก้ไขเทมเพลต คุณจะเผยแพร่เทมเพลตไปยังโปรเจ็กต์เดียวกันได้ แต่จะเผยแพร่ไปยังโปรเจ็กต์อื่นไม่ได้ เว้นแต่คุณจะลบ การปรับเปลี่ยนในแบบของคุณออกจากเทมเพลต
คุณสามารถนำเข้าเงื่อนไขจากโปรเจ็กต์หนึ่งไปยังอีกโปรเจ็กต์หนึ่งได้ แต่โปรดทราบว่าค่าตามเงื่อนไขที่เฉพาะเจาะจง (เช่น รหัสแอปหรือกลุ่มเป้าหมาย) ควรมีอยู่ในโปรเจ็กต์เป้าหมายก่อนที่จะเผยแพร่
เช่น หากคุณมีพารามิเตอร์ Remote Config ที่ใช้เงื่อนไข ที่ระบุค่าแพลตฟอร์มเป็น
iOSคุณจะเผยแพร่เทมเพลตไปยัง โปรเจ็กต์อื่นได้ เนื่องจากค่าแพลตฟอร์มจะเหมือนกันสำหรับทุกโปรเจ็กต์ อย่างไรก็ตาม หากมีเงื่อนไขที่อิงตามรหัสแอปหรือกลุ่มเป้าหมายผู้ใช้ที่ไม่มีอยู่ในโปรเจ็กต์เป้าหมาย การตรวจสอบจะล้มเหลวหากเทมเพลตที่คุณวางแผนจะเผยแพร่มีเงื่อนไขที่อิงตาม Google Analytics คุณต้องเปิดใช้ Analytics ใน โปรเจ็กต์เป้าหมาย
ดาวน์โหลดRemote Configค่าเริ่มต้นของเทมเพลต
เนื่องจากแอปอาจไม่ได้เชื่อมต่ออินเทอร์เน็ตเสมอไป คุณจึงควรกำหนดค่าเริ่มต้นของแอปฝั่งไคลเอ็นต์สำหรับพารามิเตอร์ Remote Config ทั้งหมด นอกจากนี้ คุณควรซิงค์ค่าเริ่มต้นของไคลเอ็นต์แอป และค่าพารามิเตอร์เริ่มต้นของแบ็กเอนด์ Remote Config เป็นระยะๆ เนื่องจากค่าเหล่านี้อาจเปลี่ยนแปลงไปตามเวลา
ตามที่อธิบายไว้ในลิงก์เฉพาะแพลตฟอร์มที่ส่วนท้ายของส่วนนี้ คุณสามารถ ตั้งค่าเริ่มต้นเหล่านี้ด้วยตนเองในแอป หรือจะปรับปรุงกระบวนการนี้โดย ดาวน์โหลดไฟล์ที่มีคู่คีย์-ค่าเท่านั้นสำหรับพารามิเตอร์ทั้งหมด และค่าเริ่มต้นของพารามิเตอร์เหล่านั้นในเทมเพลต Remote Config ที่ใช้งานอยู่ก็ได้ จากนั้นคุณจะ รวมไฟล์นี้ไว้ในโปรเจ็กต์และกำหนดค่าแอปเพื่อนำเข้าค่าเหล่านี้ได้
คุณดาวน์โหลดไฟล์เหล่านี้ได้ในรูปแบบ XML สำหรับแอป Android รูปแบบรายการพร็อพเพอร์ตี้ (plist) สำหรับแอป iOS และ JSON สำหรับเว็บแอป
เราขอแนะนำให้ดาวน์โหลดค่าเริ่มต้นของ Remote Config เป็นระยะๆ ก่อนที่จะมีการเปิดตัวแอปใหม่ เพื่อให้มั่นใจว่าแอปและแบ็กเอนด์ของ Remote Config จะซิงค์กันอยู่เสมอ
วิธีดาวน์โหลดไฟล์ที่มีค่าเริ่มต้นของเทมเพลตมีดังนี้
REST
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
ใช้ XML, PLIST หรือ JSON เป็นค่า format ขึ้นอยู่กับรูปแบบไฟล์ที่ต้องการดาวน์โหลด
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่หน้า DevOps และความผูกพัน > การกำหนดค่าระยะไกล > พารามิเตอร์
เปิด
เมนู แล้ว เลือกดาวน์โหลดค่าเริ่มต้นเมื่อได้รับข้อความแจ้ง ให้คลิกปุ่มตัวเลือกที่สอดคล้องกับรูปแบบไฟล์ที่ต้องการดาวน์โหลด แล้วคลิกดาวน์โหลดไฟล์
ดูข้อมูลเพิ่มเติมเกี่ยวกับการนําเข้าค่าเริ่มต้นของ Remote Config ไปยังแอปได้ที่