วิธีที่ดีที่สุดในการเพิ่มประสิทธิภาพและปรับขนาดข้อมูลของคุณใน Firebase Realtime Database คือการแบ่งข้อมูลของคุณออกเป็นหลายอินสแตนซ์ของ Realtime Database หรือที่เรียกว่าการแบ่งกลุ่มฐานข้อมูล Sharding ช่วยให้คุณมีความยืดหยุ่นในการปรับขนาดเกิน ขีดจำกัด ที่ใช้กับอินสแตนซ์ฐานข้อมูลแต่ละรายการ นอกเหนือจากการจัดสรรภาระงานและการเพิ่มประสิทธิภาพ
เมื่อใดควรแบ่งข้อมูลของคุณ
คุณอาจต้องการแชร์ข้อมูลของคุณในหลายๆ ฐานข้อมูล หากคุณใช้ Realtime Database และเหมาะสมกับสถานการณ์ใดๆ ต่อไปนี้:
- คุณต้องการขยายเกินขีดจำกัดของการเชื่อมต่อพร้อมกัน 200,000 รายการ การดำเนินการเขียน 1,000 รายการ/วินาที หรือ ขีดจำกัด อื่นๆ สำหรับอินสแตนซ์ฐานข้อมูลเดียว
- คุณมีชุดข้อมูลที่แยกจากกันหลายชุดและต้องการเพิ่มประสิทธิภาพ (เช่น แอปแชทที่ให้บริการแยกกลุ่มผู้ใช้อิสระ)
- คุณต้องการปรับสมดุลการโหลดในหลายๆ ฐานข้อมูลเพื่อปรับปรุงเวลาทำงานและลดความเสี่ยงของการโอเวอร์โหลดอินสแตนซ์ฐานข้อมูลเดียว
วิธีแบ่งข้อมูลของคุณ
หากต้องการแบ่งข้อมูลของคุณ ให้ทำตามขั้นตอนเหล่านี้ (อธิบายโดยละเอียดด้านล่าง):
- แมปข้อมูลของคุณกับหลายฐานข้อมูลตามความต้องการเฉพาะของแอพของคุณ
- สร้างอินสแตนซ์ฐานข้อมูลหลายรายการ
- กำหนดค่าแอปของคุณเพื่อให้เชื่อมต่อกับอินสแตนซ์ฐานข้อมูลเรียลไทม์ที่จำเป็นสำหรับชุดข้อมูลแต่ละชุด
แมปข้อมูลของคุณ
เมื่อคุณแมปข้อมูลของคุณกับหลายฐานข้อมูล ให้พยายามทำตามเงื่อนไขต่อไปนี้:
- แบบสอบถามแต่ละรายการจะทำงานกับอินสแตนซ์ฐานข้อมูลเดียวเท่านั้น ฐานข้อมูลเรียลไทม์ไม่รองรับการสืบค้นข้ามอินสแตนซ์ฐานข้อมูล
- ไม่มีการแชร์หรือทำซ้ำข้อมูลระหว่างอินสแตนซ์ฐานข้อมูล (หรือแชร์หรือทำซ้ำน้อยที่สุด)
- แต่ละอินสแตนซ์ของแอปจะเชื่อมต่อกับฐานข้อมูลเดียวเท่านั้นในช่วงเวลาหนึ่งๆ
ขณะที่คุณแมปข้อมูล ให้พิจารณาใช้กลยุทธ์ต่อไปนี้:
สร้าง "มาสเตอร์ชาร์ด"
จัดเก็บแผนผังวิธีการจัดเก็บข้อมูลของคุณในอินสแตนซ์ฐานข้อมูล ด้วยวิธีนี้ คุณสามารถค้นหาโดยทางโปรแกรมว่าอินสแตนซ์ฐานข้อมูลใดที่สอดคล้องกับไคลเอนต์ที่เชื่อมต่อ โปรดทราบว่าการดำเนินการนี้อาจมีค่าใช้จ่ายมากกว่าการเชื่อมต่อโดยตรงกับอินสแตนซ์ฐานข้อมูลที่คุณต้องการเมื่อคุณต้องการ
เก็บข้อมูลตามหมวดหมู่หรือตามลูกค้า
จัดเก็บข้อมูลในอินสแตนซ์ฐานข้อมูลแยก จัดกลุ่มตามผู้ใช้หรือประเภทข้อมูล ตัวอย่างเช่น หากคุณสร้างแอปพลิเคชันแชทที่ให้บริการหลายองค์กร คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลสำหรับแต่ละองค์กรและเก็บข้อมูลการแชททั้งหมดไว้ในอินสแตนซ์ฐานข้อมูลเฉพาะ
ในกรณีนี้ องค์กร A และองค์กร B จะไม่แชร์ข้อมูล ไม่มีข้อมูลที่ซ้ำกันในฐานข้อมูลของคุณ และคุณดำเนินการค้นหากับอินสแตนซ์ฐานข้อมูลเดียวเท่านั้น นอกจากนี้ ผู้ใช้ในแต่ละองค์กรจะเชื่อมต่อกับฐานข้อมูลขององค์กรเมื่อใช้แอปแชทเท่านั้น
จากนั้น คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลหลายรายการล่วงหน้า และใช้ ID ขององค์กรเพื่อจับคู่ทีมกับอินสแตนซ์ฐานข้อมูล ตัวอย่างเช่น องค์กร A แมปกับฐานข้อมูลเรียลไทม์ A
วิธีที่คุณแมปข้อมูลสำหรับแอปของคุณขึ้นอยู่กับกรณีการใช้งานเฉพาะของคุณ แต่เงื่อนไขและกลยุทธ์ที่สรุปไว้ข้างต้นสามารถช่วยคุณกำหนดสิ่งที่ใช้ได้ผลกับข้อมูลของคุณ
สร้างอินสแตนซ์ฐานข้อมูลเรียลไทม์หลายรายการ
หากคุณใช้ แผนราคา Blaze คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลได้สูงสุด 1,000 อินสแตนซ์ในโครงการ Firebase เดียวกัน
- ในคอนโซล Firebase ให้ไปที่แท็บ ข้อมูล ในส่วน พัฒนา > ฐานข้อมูล
- เลือก สร้างฐานข้อมูลใหม่ จากเมนูในส่วน ฐานข้อมูลเรียลไทม์
- ปรับแต่ง การอ้างอิงฐานข้อมูล และ กฎความปลอดภัย จาก นั้นคลิก รับทราบ
ทำซ้ำขั้นตอนเพื่อสร้างอินสแตนซ์ฐานข้อมูลได้มากเท่าที่คุณต้องการ อินสแตนซ์ฐานข้อมูลแต่ละรายการมีชุดกฎความปลอดภัยของฐานข้อมูลแบบเรียลไทม์ของ Firebase ดังนั้นคุณจึงสามารถปรับแต่งการเข้าถึงข้อมูลของคุณได้
คุณสามารถสร้างและจัดการอินสแตนซ์ฐานข้อมูลในคอนโซล Firebase หรือใช้ Realtime Database Management REST API
แก้ไขและปรับใช้กฎความปลอดภัยของฐานข้อมูลแบบเรียลไทม์สำหรับแต่ละอินสแตนซ์
ตรวจสอบให้แน่ใจว่ากฎความปลอดภัยของฐานข้อมูลเรียลไทม์อนุญาตให้เข้าถึงอินสแตนซ์ฐานข้อมูลแต่ละรายการในโครงการของคุณได้อย่างเหมาะสม แต่ละฐานข้อมูลมีชุดกฎของตัวเอง ซึ่งคุณสามารถแก้ไขและทำให้ใช้งานได้จากคอนโซล Firebase หรือใช้ Firebase CLI เพื่อปรับใช้เป้าหมาย
หากต้องการแก้ไขและปรับใช้กฎจากคอนโซล Firebase ให้ทำตามขั้นตอนเหล่านี้:
- ไปที่ แท็บ กฎ ในส่วน พัฒนา > ฐานข้อมูล
- เลือกฐานข้อมูลที่คุณต้องการแก้ไข จากนั้นแก้ไขกฎ
หากต้องการแก้ไขและปรับใช้กฎจาก Firebase CLI ให้ทำตามขั้นตอนเหล่านี้:
- แก้ไขกฎในไฟล์กฎสำหรับอินสแตนซ์ฐานข้อมูลของคุณ (เช่น
foo.rules.json
) - สร้างและใช้เป้าหมายการปรับใช้เพื่อเชื่อมโยงฐานข้อมูลที่ใช้ไฟล์กฎเดียวกัน ตัวอย่างเช่น:
firebase target:apply database main my-db-1 my-db-2
firebase target:apply database other my-other-db-3
อัปเดตไฟล์การกำหนดค่า
firebase.json
ของคุณด้วยเป้าหมายการปรับใช้:{ "database": [ {"target": "main", "rules": "foo.rules.json"}, {"target": "other", "rules": "bar.rules.json"} ] }
เรียกใช้คำสั่งปรับใช้:
firebase deploy
- แก้ไขกฎในไฟล์กฎสำหรับอินสแตนซ์ฐานข้อมูลของคุณ (เช่น
ตรวจสอบว่าคุณแก้ไขและปรับใช้กฎอย่างสม่ำเสมอจากที่เดียวกัน การปรับใช้กฎจาก Firebase CLI จะลบล้างการแก้ไขใดๆ ที่คุณทำในคอนโซล Firebase และการแก้ไขกฎโดยตรงในคอนโซล Firebase จะลบล้างการเปลี่ยนแปลงล่าสุดใดๆ ที่คุณทำให้ใช้งานได้ผ่าน Firebase CLI
เชื่อมต่อแอปของคุณกับอินสแตนซ์ฐานข้อมูลหลายรายการ
ใช้การอ้างอิงฐานข้อมูลเพื่อเข้าถึงข้อมูลที่จัดเก็บไว้ในอินสแตนซ์ฐานข้อมูลรอง คุณสามารถรับข้อมูลอ้างอิงสำหรับอินสแตนซ์ฐานข้อมูลเฉพาะได้จาก URL หรือแอป หากคุณไม่ระบุ URL คุณจะได้รับข้อมูลอ้างอิงสำหรับอินสแตนซ์ฐานข้อมูลเริ่มต้นของแอป
Web modular API
import { initializeApp } from "firebase/app"; import { getDatabase } from "firebase/database"; const app1 = initializeApp({ databaseURL: "https://testapp-1234-1.firebaseio.com" }); const app2 = initializeApp({ databaseURL: "https://testapp-1234-2.firebaseio.com" }, 'app2'); // Get the default database instance for an app1 const database1 = getDatabase(app1); // Get a database instance for app2 const database2 = getDatabase(app2);
Web namespaced API
const app1 = firebase.initializeApp({ databaseURL: "https://testapp-1234-1.firebaseio.com" }); const app2 = firebase.initializeApp({ databaseURL: "https://testapp-1234-2.firebaseio.com" }, 'app2'); // Get the default database instance for an app1 var database1 = firebase.database(); // Get a database instance for app2 var database2 = firebase.database(app2);
สวิฟต์
// Get the default database instance for an appvar ref: DatabaseReference! ref = Database.database().reference()// รับอินสแตนซ์ฐานข้อมูลรองตาม URL var ref: DatabaseReference! ref = Database.database("https://testapp-1234.firebaseio.com").reference()
วัตถุประสงค์-C
// Get the default database instance for an app@property (strong, nonatomic) FIRDatabaseReference *ref; self.ref = [[FIRDatabase database] reference];// รับอินสแตนซ์ฐานข้อมูลรองตาม URL @property (แข็งแกร่ง ไม่มีอะตอม) FIRDatabaseReference *ref; self.ref = [[ฐานข้อมูล FIRDatabase WithURL:@"https://testapp-1234.firebaseio.com"] อ้างอิง];
Kotlin+KTX
// Get the default database instance for an app val primary = Firebase.database.reference // Get a secondary database instance by URL val secondary = Firebase.database("https://testapp-1234.firebaseio.com").reference
Java
// Get the default database instance for an app DatabaseReference primary = FirebaseDatabase.getInstance() .getReference(); // Get a secondary database instance by URL DatabaseReference secondary = FirebaseDatabase.getInstance("https://testapp-1234.firebaseio.com") .getReference();
ระบุอินสแตนซ์เมื่อใช้ Firebase CLI
ใช้ ตัวเลือก --instance
เพื่อระบุว่าฐานข้อมูลเรียลไทม์ของ Firebase ใดที่คุณต้องการใช้คำสั่ง Firebase CLI ตัวอย่างเช่น ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ตัวสร้างโปรไฟล์สำหรับอินสแตนซ์ฐานข้อมูลชื่อ my-example-shard.firebaseio.com
:
firebase database:profile --instance "my-example-shard"
เพิ่มประสิทธิภาพการเชื่อมต่อในแต่ละฐานข้อมูล
หากไคลเอนต์แต่ละรายจำเป็นต้องเชื่อมต่อกับฐานข้อมูลหลายฐานข้อมูลในระหว่างเซสชัน คุณสามารถลดจำนวนการเชื่อมต่อพร้อมกันไปยังอินสแตนซ์ฐานข้อมูลแต่ละรายการได้โดยการเชื่อมต่อกับอินสแตนซ์ฐานข้อมูลแต่ละตัวนานเท่าที่จำเป็นเท่านั้น
รับคำแนะนำเพิ่มเติม
หากคุณต้องการความช่วยเหลือเพิ่มเติมในการแบ่งส่วนข้อมูลของคุณในอินสแตนซ์ฐานข้อมูลหลายรายการ โปรดติดต่อผู้เชี่ยวชาญ Firebase ใน ช่อง Slack ของเราหรือที่ Stack Overflow
,วิธีที่ดีที่สุดในการเพิ่มประสิทธิภาพและปรับขนาดข้อมูลของคุณใน Firebase Realtime Database คือการแบ่งข้อมูลของคุณออกเป็นหลายอินสแตนซ์ของ Realtime Database หรือที่เรียกว่าการแบ่งกลุ่มฐานข้อมูล Sharding ช่วยให้คุณมีความยืดหยุ่นในการปรับขนาดเกิน ขีดจำกัด ที่ใช้กับอินสแตนซ์ฐานข้อมูลแต่ละรายการ นอกเหนือจากการจัดสรรภาระงานและการเพิ่มประสิทธิภาพ
เมื่อใดควรแบ่งข้อมูลของคุณ
คุณอาจต้องการแชร์ข้อมูลของคุณในหลายๆ ฐานข้อมูล หากคุณใช้ Realtime Database และเหมาะสมกับสถานการณ์ใดๆ ต่อไปนี้:
- คุณต้องการขยายเกินขีดจำกัดของการเชื่อมต่อพร้อมกัน 200,000 รายการ การดำเนินการเขียน 1,000 รายการ/วินาที หรือ ขีดจำกัด อื่นๆ สำหรับอินสแตนซ์ฐานข้อมูลเดียว
- คุณมีชุดข้อมูลที่แยกจากกันหลายชุดและต้องการเพิ่มประสิทธิภาพ (เช่น แอปแชทที่ให้บริการแยกกลุ่มผู้ใช้อิสระ)
- คุณต้องการปรับสมดุลการโหลดในหลายๆ ฐานข้อมูลเพื่อปรับปรุงเวลาทำงานและลดความเสี่ยงของการโอเวอร์โหลดอินสแตนซ์ฐานข้อมูลเดียว
วิธีแบ่งข้อมูลของคุณ
หากต้องการแบ่งข้อมูลของคุณ ให้ทำตามขั้นตอนเหล่านี้ (อธิบายโดยละเอียดด้านล่าง):
- แมปข้อมูลของคุณกับหลายฐานข้อมูลตามความต้องการเฉพาะของแอพของคุณ
- สร้างอินสแตนซ์ฐานข้อมูลหลายรายการ
- กำหนดค่าแอปของคุณเพื่อให้เชื่อมต่อกับอินสแตนซ์ฐานข้อมูลเรียลไทม์ที่จำเป็นสำหรับชุดข้อมูลแต่ละชุด
แมปข้อมูลของคุณ
เมื่อคุณแมปข้อมูลของคุณกับหลายฐานข้อมูล ให้พยายามทำตามเงื่อนไขต่อไปนี้:
- แบบสอบถามแต่ละรายการจะทำงานกับอินสแตนซ์ฐานข้อมูลเดียวเท่านั้น ฐานข้อมูลเรียลไทม์ไม่รองรับการสืบค้นข้ามอินสแตนซ์ฐานข้อมูล
- ไม่มีการแชร์หรือทำซ้ำข้อมูลระหว่างอินสแตนซ์ฐานข้อมูล (หรือแชร์หรือทำซ้ำน้อยที่สุด)
- แต่ละอินสแตนซ์ของแอปจะเชื่อมต่อกับฐานข้อมูลเดียวเท่านั้นในช่วงเวลาหนึ่งๆ
ขณะที่คุณแมปข้อมูล ให้พิจารณาใช้กลยุทธ์ต่อไปนี้:
สร้าง "มาสเตอร์ชาร์ด"
จัดเก็บแผนผังวิธีการจัดเก็บข้อมูลของคุณในอินสแตนซ์ฐานข้อมูล ด้วยวิธีนี้ คุณสามารถค้นหาโดยทางโปรแกรมว่าอินสแตนซ์ฐานข้อมูลใดที่สอดคล้องกับไคลเอนต์ที่เชื่อมต่อ โปรดทราบว่าการดำเนินการนี้อาจมีค่าใช้จ่ายมากกว่าการเชื่อมต่อโดยตรงกับอินสแตนซ์ฐานข้อมูลที่คุณต้องการเมื่อคุณต้องการ
เก็บข้อมูลตามหมวดหมู่หรือตามลูกค้า
จัดเก็บข้อมูลในอินสแตนซ์ฐานข้อมูลแยก จัดกลุ่มตามผู้ใช้หรือประเภทข้อมูล ตัวอย่างเช่น หากคุณสร้างแอปพลิเคชันแชทที่ให้บริการหลายองค์กร คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลสำหรับแต่ละองค์กรและเก็บข้อมูลการแชททั้งหมดไว้ในอินสแตนซ์ฐานข้อมูลเฉพาะ
ในกรณีนี้ องค์กร A และองค์กร B จะไม่แชร์ข้อมูล ไม่มีข้อมูลที่ซ้ำกันในฐานข้อมูลของคุณ และคุณดำเนินการค้นหากับอินสแตนซ์ฐานข้อมูลเดียวเท่านั้น นอกจากนี้ ผู้ใช้ในแต่ละองค์กรจะเชื่อมต่อกับฐานข้อมูลขององค์กรเมื่อใช้แอปแชทเท่านั้น
จากนั้น คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลหลายรายการล่วงหน้า และใช้ ID ขององค์กรเพื่อจับคู่ทีมกับอินสแตนซ์ฐานข้อมูล ตัวอย่างเช่น องค์กร A แมปกับฐานข้อมูลเรียลไทม์ A
วิธีที่คุณแมปข้อมูลสำหรับแอปของคุณขึ้นอยู่กับกรณีการใช้งานเฉพาะของคุณ แต่เงื่อนไขและกลยุทธ์ที่สรุปไว้ข้างต้นสามารถช่วยคุณกำหนดสิ่งที่ใช้ได้ผลกับข้อมูลของคุณ
สร้างอินสแตนซ์ฐานข้อมูลเรียลไทม์หลายรายการ
หากคุณใช้ แผนราคา Blaze คุณสามารถสร้างอินสแตนซ์ฐานข้อมูลได้สูงสุด 1,000 อินสแตนซ์ในโครงการ Firebase เดียวกัน
- ในคอนโซล Firebase ให้ไปที่แท็บ ข้อมูล ในส่วน พัฒนา > ฐานข้อมูล
- เลือก สร้างฐานข้อมูลใหม่ จากเมนูในส่วน ฐานข้อมูลเรียลไทม์
- ปรับแต่ง การอ้างอิงฐานข้อมูล และ กฎความปลอดภัย จาก นั้นคลิก รับทราบ
ทำซ้ำขั้นตอนเพื่อสร้างอินสแตนซ์ฐานข้อมูลได้มากเท่าที่คุณต้องการ อินสแตนซ์ฐานข้อมูลแต่ละรายการมีชุดกฎความปลอดภัยของฐานข้อมูลแบบเรียลไทม์ของ Firebase ดังนั้นคุณจึงสามารถปรับแต่งการเข้าถึงข้อมูลของคุณได้
คุณสามารถสร้างและจัดการอินสแตนซ์ฐานข้อมูลในคอนโซล Firebase หรือใช้ Realtime Database Management REST API
แก้ไขและปรับใช้กฎความปลอดภัยของฐานข้อมูลแบบเรียลไทม์สำหรับแต่ละอินสแตนซ์
ตรวจสอบให้แน่ใจว่ากฎความปลอดภัยของฐานข้อมูลเรียลไทม์อนุญาตให้เข้าถึงอินสแตนซ์ฐานข้อมูลแต่ละรายการในโครงการของคุณได้อย่างเหมาะสม แต่ละฐานข้อมูลมีชุดกฎของตัวเอง ซึ่งคุณสามารถแก้ไขและทำให้ใช้งานได้จากคอนโซล Firebase หรือใช้ Firebase CLI เพื่อปรับใช้เป้าหมาย
หากต้องการแก้ไขและปรับใช้กฎจากคอนโซล Firebase ให้ทำตามขั้นตอนเหล่านี้:
- ไปที่ แท็บ กฎ ในส่วน พัฒนา > ฐานข้อมูล
- เลือกฐานข้อมูลที่คุณต้องการแก้ไข จากนั้นแก้ไขกฎ
หากต้องการแก้ไขและปรับใช้กฎจาก Firebase CLI ให้ทำตามขั้นตอนเหล่านี้:
- แก้ไขกฎในไฟล์กฎสำหรับอินสแตนซ์ฐานข้อมูลของคุณ (เช่น
foo.rules.json
) - สร้างและใช้เป้าหมายการปรับใช้เพื่อเชื่อมโยงฐานข้อมูลที่ใช้ไฟล์กฎเดียวกัน ตัวอย่างเช่น:
firebase target:apply database main my-db-1 my-db-2
firebase target:apply database other my-other-db-3
อัปเดตไฟล์การกำหนดค่า
firebase.json
ของคุณด้วยเป้าหมายการปรับใช้:{ "database": [ {"target": "main", "rules": "foo.rules.json"}, {"target": "other", "rules": "bar.rules.json"} ] }
เรียกใช้คำสั่งปรับใช้:
firebase deploy
- แก้ไขกฎในไฟล์กฎสำหรับอินสแตนซ์ฐานข้อมูลของคุณ (เช่น
ตรวจสอบว่าคุณแก้ไขและปรับใช้กฎอย่างสม่ำเสมอจากที่เดียวกัน การปรับใช้กฎจาก Firebase CLI จะลบล้างการแก้ไขใดๆ ที่คุณทำในคอนโซล Firebase และการแก้ไขกฎโดยตรงในคอนโซล Firebase จะลบล้างการเปลี่ยนแปลงล่าสุดใดๆ ที่คุณทำให้ใช้งานได้ผ่าน Firebase CLI
เชื่อมต่อแอปของคุณกับอินสแตนซ์ฐานข้อมูลหลายรายการ
ใช้การอ้างอิงฐานข้อมูลเพื่อเข้าถึงข้อมูลที่จัดเก็บไว้ในอินสแตนซ์ฐานข้อมูลรอง คุณสามารถรับข้อมูลอ้างอิงสำหรับอินสแตนซ์ฐานข้อมูลเฉพาะได้จาก URL หรือแอป หากคุณไม่ระบุ URL คุณจะได้รับข้อมูลอ้างอิงสำหรับอินสแตนซ์ฐานข้อมูลเริ่มต้นของแอป
Web modular API
import { initializeApp } from "firebase/app"; import { getDatabase } from "firebase/database"; const app1 = initializeApp({ databaseURL: "https://testapp-1234-1.firebaseio.com" }); const app2 = initializeApp({ databaseURL: "https://testapp-1234-2.firebaseio.com" }, 'app2'); // Get the default database instance for an app1 const database1 = getDatabase(app1); // Get a database instance for app2 const database2 = getDatabase(app2);
Web namespaced API
const app1 = firebase.initializeApp({ databaseURL: "https://testapp-1234-1.firebaseio.com" }); const app2 = firebase.initializeApp({ databaseURL: "https://testapp-1234-2.firebaseio.com" }, 'app2'); // Get the default database instance for an app1 var database1 = firebase.database(); // Get a database instance for app2 var database2 = firebase.database(app2);
สวิฟต์
// Get the default database instance for an appvar ref: DatabaseReference! ref = Database.database().reference()// รับอินสแตนซ์ฐานข้อมูลรองตาม URL var ref: DatabaseReference! ref = Database.database("https://testapp-1234.firebaseio.com").reference()
วัตถุประสงค์-C
// Get the default database instance for an app@property (strong, nonatomic) FIRDatabaseReference *ref; self.ref = [[FIRDatabase database] reference];// รับอินสแตนซ์ฐานข้อมูลรองตาม URL @property (แข็งแกร่ง ไม่มีอะตอม) FIRDatabaseReference *ref; self.ref = [[ฐานข้อมูล FIRDatabase WithURL:@"https://testapp-1234.firebaseio.com"] อ้างอิง];
Kotlin+KTX
// Get the default database instance for an app val primary = Firebase.database.reference // Get a secondary database instance by URL val secondary = Firebase.database("https://testapp-1234.firebaseio.com").reference
Java
// Get the default database instance for an app DatabaseReference primary = FirebaseDatabase.getInstance() .getReference(); // Get a secondary database instance by URL DatabaseReference secondary = FirebaseDatabase.getInstance("https://testapp-1234.firebaseio.com") .getReference();
ระบุอินสแตนซ์เมื่อใช้ Firebase CLI
ใช้ ตัวเลือก --instance
เพื่อระบุว่าฐานข้อมูลเรียลไทม์ของ Firebase ใดที่คุณต้องการใช้คำสั่ง Firebase CLI ตัวอย่างเช่น ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ตัวสร้างโปรไฟล์สำหรับอินสแตนซ์ฐานข้อมูลชื่อ my-example-shard.firebaseio.com
:
firebase database:profile --instance "my-example-shard"
เพิ่มประสิทธิภาพการเชื่อมต่อในแต่ละฐานข้อมูล
หากไคลเอนต์แต่ละรายจำเป็นต้องเชื่อมต่อกับฐานข้อมูลหลายฐานข้อมูลในระหว่างเซสชัน คุณสามารถลดจำนวนการเชื่อมต่อพร้อมกันไปยังอินสแตนซ์ฐานข้อมูลแต่ละรายการได้โดยการเชื่อมต่อกับอินสแตนซ์ฐานข้อมูลแต่ละตัวนานเท่าที่จำเป็นเท่านั้น
รับคำแนะนำเพิ่มเติม
หากคุณต้องการความช่วยเหลือเพิ่มเติมในการแบ่งส่วนข้อมูลของคุณในอินสแตนซ์ฐานข้อมูลหลายรายการ โปรดติดต่อผู้เชี่ยวชาญ Firebase ใน ช่อง Slack ของเราหรือที่ Stack Overflow