เทมเพลตการกำหนดค่าระยะไกลคือชุดพารามิเตอร์และเงื่อนไขรูปแบบ JSON ที่คุณสร้างไว้สำหรับโปรเจ็กต์ Firebase คุณสร้างเทมเพลตไคลเอ็นต์ที่แอปจะดึงข้อมูลค่าและสร้างเทมเพลตเซิร์ฟเวอร์ก็ได้ ซึ่งไคลเอ็นต์เซิร์ฟเวอร์จะดึงข้อมูลค่าได้
ส่วนนี้จะกล่าวถึงเทมเพลตไคลเอ็นต์ หากต้องการดูข้อมูลเกี่ยวกับเทมเพลตเฉพาะเซิร์ฟเวอร์ ให้คลิกเทมเพลตเซิร์ฟเวอร์คุณแก้ไขและจัดการเทมเพลตโดยใช้คอนโซล Firebase ซึ่งแสดงเนื้อหาของเทมเพลตในรูปแบบกราฟิกในแท็บ แท็บพารามิเตอร์และ เงื่อนไข
คุณสามารถใช้ 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
- แสดงรายการเวอร์ชันของเทมเพลตที่จัดเก็บไว้ทั้งหมด
- ดึงข้อมูลเวอร์ชันที่ต้องการ
- ย้อนกลับไปใช้เวอร์ชันไคลเอ็นต์ที่ต้องการ
- ลบเทมเพลตการกำหนดค่าระยะไกลจากหน้าประวัติการเปลี่ยนแปลง
ระบบจำกัดให้เวอร์ชันที่เก็บไว้ตลอดอายุการใช้งานทั้งหมด 300 เวอร์ชันต่อเทมเพลตแต่ละประเภท (เทมเพลตไคลเอ็นต์ 300 รายการและเทมเพลตเซิร์ฟเวอร์ 300 รายการ) ซึ่งมีหมายเลขเวอร์ชันที่จัดเก็บไว้สำหรับเทมเพลตที่ลบไปแล้ว หากคุณเผยแพร่เทมเพลตมากกว่า 300 เวอร์ชันต่อประเภทเทมเพลตตลอดอายุการใช้งานของโปรเจ็กต์ ระบบจะลบเวอร์ชันก่อนหน้านี้ออก โดยรักษาให้เวอร์ชันนั้นไม่เกิน 300 เวอร์ชัน
ทุกครั้งที่คุณอัปเดตพารามิเตอร์ การกำหนดค่าระยะไกลจะสร้างเทมเพลตการกำหนดค่าระยะไกลเวอร์ชันใหม่และจัดเก็บเทมเพลตก่อนหน้าเป็นเวอร์ชันที่คุณสามารถเรียกคืนหรือย้อนกลับได้ตามต้องการ หมายเลขเวอร์ชันจะเพิ่มตามลำดับจากค่าเริ่มต้นที่จัดเก็บไว้โดยการกำหนดค่าระยะไกล
เทมเพลตทั้งหมดจะมีช่อง version
ตามที่แสดง ซึ่งจะมีข้อมูลเมตาเกี่ยวกับเวอร์ชันที่เจาะจงดังกล่าว
คุณลบเทมเพลตการกำหนดค่าระยะไกลได้ตามต้องการจากหน้า ประวัติการเปลี่ยนแปลง ใน คอนโซลการกำหนดค่าระยะไกล
จัดการเวอร์ชันเทมเพลตการกำหนดค่าระยะไกล
หัวข้อนี้จะอธิบายวิธีจัดการเวอร์ชันของเทมเพลตการกำหนดค่าระยะไกล
แสดงรายการเวอร์ชันที่จัดเก็บไว้ของเทมเพลตการกำหนดค่าระยะไกล
คุณดึงรายการเทมเพลตการกำหนดค่าระยะไกลเวอร์ชันที่จัดเก็บไว้ทั้งหมดได้ โดยทำดังนี้
คอนโซล Firebase
ในแท็บพารามิเตอร์ ให้เลือกไอคอน "นาฬิกา" ที่แสดงที่ด้านขวาบน ซึ่งจะเปิดหน้าประวัติการเปลี่ยนแปลงที่แสดงเวอร์ชันเทมเพลตที่จัดเก็บไว้ทั้งหมดในเมนูรายการทางด้านขวา
รายละเอียดที่แสดงสำหรับแต่ละเวอร์ชันที่จัดเก็บมีข้อมูลว่าการเปลี่ยนแปลงเกิดขึ้นจาก 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"
}]
}
```
ดึงข้อมูลเทมเพลตการกำหนดค่าระยะไกลในเวอร์ชันที่ต้องการ
คุณดึงเทมเพลตการกำหนดค่าระยะไกล เวอร์ชันที่จัดเก็บไว้อย่างเจาะจงได้ วิธีดึงข้อมูลเวอร์ชันเทมเพลต ที่เก็บไว้
คอนโซล Firebase
โดยค่าเริ่มต้น แผงรายละเอียดในแท็บประวัติการเปลี่ยนแปลงจะแสดงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน หากต้องการดูรายละเอียดสำหรับเวอร์ชันอื่นในรายการ ให้เลือกเวอร์ชันจากเมนูด้านขวา
คุณดูความแตกต่างโดยละเอียดของเวอร์ชันที่เลือกในปัจจุบันและเวอร์ชันอื่นๆ ที่จัดเก็บไว้ได้โดยวางเมาส์เหนือเมนูตามบริบทของเวอร์ชันที่ไม่ได้เลือก แล้วเลือกเปรียบเทียบกับเวอร์ชันที่เลือก
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
จะดึงข้อมูลเทมเพลตที่ใช้งานอยู่ในปัจจุบัน
ย้อนกลับไปยังเวอร์ชันที่จัดเก็บไว้เฉพาะของเทมเพลตการกำหนดค่าระยะไกล
คุณสามารถย้อนกลับไปใช้เทมเพลตเวอร์ชัน ที่จัดเก็บไว้แบบใดก็ได้ วิธีย้อนกลับเทมเพลต
คอนโซล Firebase
สำหรับเทมเพลตเวอร์ชันก่อนหน้าที่มีสิทธิ์ย้อนกลับ ปุ่มตัวเลือกเพื่อย้อนกลับไปยังเวอร์ชันดังกล่าวจะปรากฏที่ด้านขวาบนของหน้าประวัติการเปลี่ยนแปลง คลิกและยืนยันการดำเนินการนี้ต่อเมื่อคุณแน่ใจว่าต้องการย้อนกลับไปยังเวอร์ชันนั้นและใช้ค่าเหล่านั้นทันทีสำหรับแอปและผู้ใช้ทั้งหมด
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
หากต้องการย้อนกลับไปยังเทมเพลตการกำหนดค่าระยะไกลที่จัดเก็บไว้ ให้ออก 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 กลายเป็นเทมเพลตที่ใช้งานอยู่
ลบเทมเพลตการกำหนดค่าระยะไกล
คุณลบเทมเพลตการกำหนดค่าระยะไกลจากคอนโซล Firebase ได้ วิธีลบเทมเพลตการกำหนดค่าระยะไกล
1. จากหน้าพารามิเตอร์การกำหนดค่าระยะไกล ให้คลิก ประวัติการเปลี่ยนแปลงสลับไปยังเทมเพลตที่ต้องการลบ แล้วคลิก
เพิ่มเติม จากนั้นเลือกลบเมื่อมีข้อความแจ้งให้ยืนยันการลบ ให้คลิกลบ
ดาวน์โหลดและเผยแพร่เทมเพลตการกำหนดค่าระยะไกล
ดาวน์โหลดและเผยแพร่เทมเพลตการกำหนดค่าระยะไกลเพื่อผสานรวมเทมเพลตดังกล่าวเข้ากับการควบคุมต้นทางและระบบสร้าง อัปเดตการกำหนดค่าโดยอัตโนมัติ รวมถึงซิงค์พารามิเตอร์และค่าในหลายโปรเจ็กต์
คุณสามารถดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลที่ใช้งานอยู่ได้ จากคอนโซล Firebase จากนั้นคุณจะอัปเดตไฟล์ JSON ที่ส่งออกและเผยแพร่ไปยังโปรเจ็กต์เดียวกัน หรือเผยแพร่ไปยังโปรเจ็กต์ใหม่หรือโปรเจ็กต์ที่มีอยู่ก็ได้
สมมติว่าคุณมีหลายโปรเจ็กต์ที่แสดงขั้นตอนต่างๆ ในวงจรการพัฒนาซอฟต์แวร์ เช่น การพัฒนา การทดสอบ การทดลองใช้ และสภาพแวดล้อมการใช้งานจริง ในกรณีนี้ คุณสามารถโปรโมตเทมเพลตที่ทดสอบอย่างสมบูรณ์จากสภาพแวดล้อมการทดลองใช้เป็นสภาพแวดล้อมเวอร์ชันที่ใช้งานจริงโดยดาวน์โหลดเทมเพลตจากโปรเจ็กต์ทดลองใช้แล้วเผยแพร่ไปยังโปรเจ็กต์ที่ใช้งานจริงของคุณ
คุณยังใช้วิธีนี้เพื่อย้ายข้อมูลการกำหนดค่าจากโปรเจ็กต์หนึ่งไปยังอีกโปรเจ็กต์หนึ่ง หรือป้อนข้อมูลโปรเจ็กต์ใหม่ด้วยพารามิเตอร์และค่าจากโปรเจ็กต์ที่สร้างขึ้นได้ด้วย
พารามิเตอร์และค่าพารามิเตอร์ที่สร้างขึ้นเป็นตัวแปรในการทดสอบ A/B โดยเฉพาะจะไม่รวมอยู่ในเทมเพลตที่ส่งออก
วิธีส่งออกและนำเข้าเทมเพลตการกำหนดค่าระยะไกล
- ดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลปัจจุบัน
- ตรวจสอบเทมเพลตการกำหนดค่าระยะไกล
- เผยแพร่เทมเพลตการกำหนดค่าระยะไกล
ดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลปัจจุบัน
ใช้รายการต่อไปนี้เพื่อดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลที่ใช้งานอยู่ในรูปแบบ JSON
คอนโซล Firebase
- จากแท็บพารามิเตอร์การกำหนดค่าระยะไกลหรือเงื่อนไข ให้เปิด เมนู แล้วเลือกดาวน์โหลดไฟล์กำหนดค่าปัจจุบัน
- เมื่อมีข้อความแจ้ง ให้คลิกดาวน์โหลดไฟล์กำหนดค่า เลือกตำแหน่งที่คุณต้องการบันทึกไฟล์ แล้วคลิกบันทึก
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)
เผยแพร่เทมเพลตการกำหนดค่าระยะไกล
หลังจากดาวน์โหลดเทมเพลต ทำการเปลี่ยนแปลงที่จำเป็นกับเนื้อหา JSON และตรวจสอบความถูกต้องแล้ว คุณจะเผยแพร่ไปยังโปรเจ็กต์ได้
การเผยแพร่เทมเพลตจะแทนที่เทมเพลตการกำหนดค่าที่มีอยู่ทั้งหมดด้วยไฟล์ที่อัปเดต และเพิ่มเวอร์ชันของเทมเพลตครั้งละ 1 เนื่องจากระบบจะแทนที่การกำหนดค่าทั้งหมด หากคุณลบพารามิเตอร์ออกจากไฟล์ JSON และเผยแพร่พารามิเตอร์ดังกล่าว ระบบจะลบพารามิเตอร์ออกจากเซิร์ฟเวอร์และไคลเอ็นต์จะใช้ไม่ได้อีกต่อไป
หลังจากเผยแพร่ การเปลี่ยนแปลงพารามิเตอร์และค่าจะพร้อมใช้กับแอปและผู้ใช้ทันที หากจำเป็น คุณย้อนกลับไปเป็นเวอร์ชันก่อนหน้าได้
ใช้คำสั่งต่อไปนี้เพื่อเผยแพร่เทมเพลตของคุณ
คอนโซล Firebase
- จากแท็บพารามิเตอร์การกำหนดค่าระยะไกลหรือเงื่อนไข ให้เปิด เมนู แล้วเลือกเผยแพร่จากไฟล์
- เมื่อมีข้อความแจ้ง ให้คลิกเรียกดู แล้วไปที่ไฟล์การกำหนดค่าระยะไกลที่ต้องการเผยแพร่ แล้วคลิกเลือก
- ไฟล์จะได้รับการตรวจสอบ หากสำเร็จ คุณสามารถคลิกเผยแพร่เพื่อให้การกำหนดค่าพร้อมใช้งานทันทีสำหรับแอปและผู้ใช้
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
นี้ คุณจะระบุเนื้อหาได้โดยใช้อักขระ "@" แล้วตามด้วยชื่อไฟล์
การปรับเปลี่ยนในแบบของคุณและเงื่อนไขสำหรับการกำหนดค่าระยะไกลจะรวมอยู่ในเทมเพลตที่ดาวน์โหลด คุณจึงควรตระหนักถึงข้อจำกัดต่อไปนี้เมื่อพยายามเผยแพร่ไปยังโปรเจ็กต์อื่น
ไม่สามารถนำเข้าการปรับเปลี่ยนในแบบของคุณจากโปรเจ็กต์ไปยังโปรเจ็กต์ได้
ตัวอย่างเช่น หากเปิดใช้การปรับเปลี่ยนในแบบของคุณในโปรเจ็กต์และดาวน์โหลดและแก้ไขเทมเพลต คุณจะเผยแพร่ไปยังโปรเจ็กต์เดียวกันได้ แต่จะเผยแพร่ไปยังโปรเจ็กต์อื่นไม่ได้ เว้นแต่จะลบการปรับเปลี่ยนในแบบของคุณออกจากเทมเพลต
คุณนำเข้าเงื่อนไขจากโปรเจ็กต์หนึ่งไปยังอีกโปรเจ็กต์หนึ่งได้ แต่โปรดทราบว่าค่าแบบมีเงื่อนไขที่เฉพาะเจาะจงใดๆ (เช่น รหัสแอปหรือกลุ่มเป้าหมาย) ควรอยู่ในโปรเจ็กต์เป้าหมายก่อนเผยแพร่
เช่น หากคุณมีพารามิเตอร์การกำหนดค่าระยะไกลที่ใช้เงื่อนไขที่ระบุค่าแพลตฟอร์มเป็น
iOS
เทมเพลตดังกล่าวอาจเผยแพร่ไปยังโปรเจ็กต์อื่นได้ เนื่องจากค่าของแพลตฟอร์มเหมือนกันสำหรับทุกโปรเจ็กต์ อย่างไรก็ตาม หากมีเงื่อนไขที่ต้องใช้รหัสแอปหรือกลุ่มเป้าหมายผู้ใช้ที่เฉพาะเจาะจงที่ไม่มีในโปรเจ็กต์เป้าหมาย การตรวจสอบจะล้มเหลวหากเทมเพลตที่คุณวางแผนจะเผยแพร่มีเงื่อนไขที่อาศัย Google Analytics คุณต้องเปิดใช้ Analytics ในโปรเจ็กต์เป้าหมายด้วย
ดาวน์โหลดค่าเริ่มต้นของเทมเพลตการกำหนดค่าระยะไกล
เนื่องจากแอปอาจไม่ได้เชื่อมต่อกับอินเทอร์เน็ตตลอดเวลา คุณจึงควรกำหนดค่าเริ่มต้นของแอปฝั่งไคลเอ็นต์สำหรับพารามิเตอร์การกำหนดค่าระยะไกลทั้งหมด นอกจากนี้ คุณควรซิงค์ค่าเริ่มต้นของไคลเอ็นต์แอปและค่าพารามิเตอร์เริ่มต้นของการกำหนดค่าระยะไกลเป็นระยะๆ เนื่องจากค่าเหล่านี้อาจเปลี่ยนแปลงเมื่อเวลาผ่านไป
ตามที่อธิบายไว้ในลิงก์เฉพาะแพลตฟอร์มในตอนท้ายของส่วนนี้ คุณจะตั้งค่าค่าเริ่มต้นเหล่านี้ในแอปได้ด้วยตนเอง หรือเพิ่มประสิทธิภาพกระบวนการนี้ได้โดยการดาวน์โหลดไฟล์ที่มีเฉพาะคู่คีย์-ค่าสำหรับพารามิเตอร์ทั้งหมดและค่าเริ่มต้นในเทมเพลตการกำหนดค่าระยะไกลที่ใช้งานอยู่ จากนั้นคุณจะรวมไฟล์นี้ในโปรเจ็กต์และกำหนดค่าแอปให้นำเข้าค่าเหล่านี้ได้
คุณดาวน์โหลดไฟล์เหล่านี้ในรูปแบบ XML สำหรับแอป Android, รูปแบบรายการพร็อพเพอร์ตี้ (plist) สำหรับแอป iOS และ JSON สำหรับเว็บแอปได้
เราขอแนะนำให้ดาวน์โหลดค่าเริ่มต้นของการกำหนดค่าระยะไกลเป็นระยะๆ ก่อนการเผยแพร่แอปใหม่ๆ เพื่อให้แอปและแบ็กเอนด์การกำหนดค่าระยะไกลซิงค์กันอยู่เสมอ
หากต้องการดาวน์โหลดไฟล์ที่มีค่าเริ่มต้นของเทมเพลต ให้ทำดังนี้
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
- ในแท็บพารามิเตอร์ ให้เปิด เมนู แล้วเลือกดาวน์โหลดค่าเริ่มต้น
- เมื่อได้รับแจ้ง ให้คลิกปุ่มตัวเลือกที่สอดคล้องกับรูปแบบไฟล์ที่คุณต้องการดาวน์โหลด จากนั้นคลิกดาวน์โหลดไฟล์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการนำเข้าค่าเริ่มต้นของการกำหนดค่าระยะไกลลงในแอปของคุณ โปรดดู