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 <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/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 และการมีส่วนร่วม > Remote Config
โดยค่าเริ่มต้น หน้าเว็บจะแสดงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน หากต้องการดู เวอร์ชันอื่น ให้เลือกจากแผงรายละเอียดทางด้านขวา
ดู Diff แบบละเอียดของเทมเพลตที่ใช้งานอยู่และเวอร์ชันอื่นๆ ที่จัดเก็บไว้ได้โดย วางเมาส์เหนือเมนูตามบริบทของเวอร์ชันที่ไม่ได้เลือก แล้วเลือกเปรียบเทียบกับเวอร์ชันที่เลือก
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 <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6
พารามิเตอร์ URL ?version_number ใช้ได้กับการดำเนินการ GET เท่านั้น
คุณใช้พารามิเตอร์นี้เพื่อระบุหมายเลขเวอร์ชันสำหรับการอัปเดตไม่ได้ คำขอ get ที่คล้ายกัน
โดยไม่มีพารามิเตอร์ ?version_number
จะดึงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน
ย้อนกลับไปเป็นเทมเพลต Remote Config เวอร์ชันที่จัดเก็บไว้โดยเฉพาะ
คุณย้อนกลับไปใช้เทมเพลตเวอร์ชันใดก็ได้ที่จัดเก็บไว้ วิธีย้อนกลับเทมเพลตมีดังนี้
คอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่หน้าประวัติการเปลี่ยนแปลงในDevOps และการมีส่วนร่วม > Remote Config
ค้นหาปุ่มตัวเลือกที่ด้านขวาบนของหน้าสำหรับเทมเพลตเวอร์ชันก่อนหน้าที่มีสิทธิ์ย้อนกลับ
คลิกและยืนยันเฉพาะในกรณีที่คุณแน่ใจว่าต้องการย้อนกลับไปใช้เวอร์ชันนั้นและใช้ค่าเหล่านั้นทันทีสำหรับแอปและผู้ใช้ทั้งหมด
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 <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/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 และความผูกพัน > การกำหนดค่าระยะไกล > หน้าพารามิเตอร์หรือเงื่อนไข
เปิด
เมนู แล้วเลือกดาวน์โหลดไฟล์กำหนดค่าปัจจุบัน เมื่อมีข้อความแจ้ง ให้คลิกดาวน์โหลดไฟล์กำหนดค่า เลือกตำแหน่งที่ต้องการ บันทึกไฟล์ แล้วคลิกบันทึก
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 ระบบจะตรวจสอบเทมเพลตเมื่อคุณพยายาม เผยแพร่จาก Firebase CLI หรือ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 และความผูกพัน > การกำหนดค่าระยะไกล > หน้าพารามิเตอร์หรือเงื่อนไข
เปิด
เมนู แล้วเลือกเผยแพร่จากไฟล์เมื่อมีข้อความแจ้ง ให้คลิกเรียกดู ไปที่และเลือกไฟล์ 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 ไปยังแอปได้ที่