ฉันเรื่องส่วนตัวตอบคำถามนั้นและใช่มันเอ่ยถึงต้องการรายชื่อของรายการ. ในกรณีของคุณถ้ามีข่าวจะบรรจุข้อความเช่นเดียรูปฉันจะแน่นอนเพิ่มภาพทั้งหมดที่ Firebase ห้องเก็บขและข้อความต้อง Firestore และเชื่อมโยงพวกเขาเป็นไปแล้ว@FrankvanPuffelen พูดถึงในคำตอบของเขา อีกอย่างนั้นอย่างที่@ToddKerpelman อเมริกาอยู่ในการต่อคำตอบ:
ไม่เพิ่มรูปภาพที่จะ Firestore. คลาวด์เก็บของ เป็นหมายถึงสำหรับเรื่องนั้น
คิดเรื่องของคุณใช้กรณีต้องได้"จ"นั่น limitation มีอีก(คล้ายกัน)ใกล้เข้ามาแล้ว แทนที่จะพยายามที่จะบันทึกข้อมูลทั้งหมดด้วยการโดดครั้งเดียวเอกสารฉันจะเพิ่มมันไปหลายเอกสารแบบนี้:
Firestore-root
|
--- articles (collection)
|
--- $articleId (document)
|
--- articleParts (collection)
|
--- $firestoreRandomId
| |
| --- text: "Text of the article"
| |
| --- part: 1
| |
| --- articleId: $articleId
|
--- $firestoreRandomId
|
--- text: "Remaining text of the article"
|
--- part: 2
|
--- articleId: $articleId
และอย่างที่คุณเห็นกันและบทความต้องใช้มาหลายส่วนประกอบ ทำให้ทุกอย่างที่บทความจากฐานข้อมูลคุณต้องสร้าง collectionGroup query นั่นดูเหมือนนี้:
db.collectionGroup("articleParts");
ต้องอ่านบทความแยกกันแค่ concatenate ส่วนต่างๆทั้งหมดสำหรับแต่ละข่าวจาก articleId
และส่วนหนึ่งหมายเลข
ที่อยู่อีกด้านหนึ่งถ้าคุณเป็นคนเดียวที่อยากจะอ่านบทความเดียวสร้างเป็นข้อมูลนั้นย่อมชี้ไปหา:
db.collection("allArticles").document($articleId).collection("articleParts");
และทำอย่างเดียวกับปฏิบัติการที่อยู่ด้านบน
หรือคุณสามารถใช้:
db.collectionGroup("articleParts").whereEqualTo("articleId", someId);
แต่ที่นี่ไม่ก็ต้องลืมที่จะสร้าง ดัชนี.
ในวิธีนี้คุณสามารถสร้างที่หลายเอกสารอย่างที่คุณต้องการสำหรับนัดเดียวข่าวได้ สำหรับ Android ฉันต้องสร้างขึ้นห้องสมุดโทร FirestoreDocument-Androidซึ่งจะช่วยเธอเสมอตรวจดูขนาดของเอกสารกับคน จำนวนมากที่สุดที่ 1 เมกะไบต์(1,048,576 ไบต์)เต็มพื้นที่ที่ได้รับจัดสรร. ดังนั้นถ้าข่าวใหญ่กว่าคนสูงสุดของ limitation,แยกออกข่าวและเพิ่มเนื้อหาภายในหลายเอกสารต่างๆ