ชุดการเขียนที่ใช้ในการเขียนหลายรายการเป็นหน่วยอะตอมมิกเดียว
สามารถรับวัตถุ WriteBatch
ได้โดยการเรียก writeBatch() . มีวิธีการเพิ่มการเขียนลงในแบตช์การเขียน จะไม่มีการเขียนใด ๆ เกิดขึ้น (หรือมองเห็นได้ในเครื่อง) จนกว่าจะมีการเรียก WriteBatch.commit()
ลายเซ็น:
export declare class WriteBatch
วิธีการ
วิธี | ตัวดัดแปลง | คำอธิบาย |
---|---|---|
ให้สัญญา() | คอมมิตการเขียนทั้งหมดในแบตช์การเขียนนี้เป็นหน่วยอะตอมมิกเดียว ผลลัพธ์ของการเขียนเหล่านี้จะสะท้อนให้เห็นในการอ่านเอกสารที่เกิดขึ้นหลังจากที่สัญญาที่ส่งคืนได้รับการแก้ไขแล้วเท่านั้น หากไคลเอนต์ออฟไลน์ การเขียนล้มเหลว หากคุณต้องการเห็นการแก้ไขในเครื่องหรือการเขียนบัฟเฟอร์จนกว่าไคลเอ็นต์จะออนไลน์ ให้ใช้ Firestore SDK แบบเต็ม | |
ลบ(documentRef) | ลบเอกสารที่อ้างถึงโดย DocumentReference ที่ให้ไว้ . | |
ชุด (documentRef, ข้อมูล) | เขียนไปยังเอกสารที่อ้างอิงโดย DocumentReference ที่ให้ไว้ . หากยังไม่มีเอกสารก็จะถูกสร้างขึ้น | |
ชุด (documentRef, ข้อมูล, ตัวเลือก) | เขียนไปยังเอกสารที่อ้างอิงโดย DocumentReference ที่ให้ไว้ . หากยังไม่มีเอกสารก็จะถูกสร้างขึ้น หากคุณระบุ merge หรือ mergeFields ข้อมูลที่ระบุสามารถผสานเข้ากับเอกสารที่มีอยู่ได้ | |
อัปเดต (documentRef, ข้อมูล) | อัปเดตฟิลด์ในเอกสารที่อ้างถึงโดย DocumentReference ที่ให้ไว้ . การอัปเดตจะล้มเหลวหากนำไปใช้กับเอกสารที่ไม่มีอยู่ | |
อัปเดต (documentRef, ฟิลด์, ค่า, moreFieldsAndValues) | อัปเดตฟิลด์ในเอกสารที่อ้างถึงโดย DocumentReference นี้ . การอัปเดตจะล้มเหลวหากนำไปใช้กับเอกสารที่ไม่มีอยู่ ฟิลด์ที่ซ้อนกันสามารถอัปเดตได้โดยการจัดเตรียมสตริงพาธของฟิลด์ที่คั่นด้วยจุด หรือโดยการจัดเตรียมออบเจ็กต์ FieldPath |
WriteBatch.commit()
คอมมิตการเขียนทั้งหมดในแบตช์การเขียนนี้เป็นหน่วยอะตอมมิกเดียว
ผลลัพธ์ของการเขียนเหล่านี้จะสะท้อนให้เห็นในการอ่านเอกสารที่เกิดขึ้นหลังจากที่สัญญาที่ส่งคืนได้รับการแก้ไขแล้วเท่านั้น หากไคลเอนต์ออฟไลน์ การเขียนล้มเหลว หากคุณต้องการเห็นการแก้ไขในเครื่องหรือการเขียนบัฟเฟอร์จนกว่าไคลเอ็นต์จะออนไลน์ ให้ใช้ Firestore SDK แบบเต็ม
ลายเซ็น:
commit(): Promise<void>;
ผลตอบแทน:
สัญญา<โมฆะ>
Promise
จะได้รับการแก้ไขเมื่อการเขียนทั้งหมดในแบตช์ถูกเขียนไปยังแบ็กเอนด์เป็นหน่วยอะตอมมิกสำเร็จแล้ว (โปรดทราบว่าจะไม่ได้รับการแก้ไขในขณะที่คุณออฟไลน์)
WriteBatch.ลบ()
ลบเอกสารที่อ้างถึงโดย DocumentReference ที่ให้ไว้ .
ลายเซ็น:
delete<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>): WriteBatch;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เอกสารอ้างอิง | เอกสารอ้างอิง <AppModelType, DbModelType> | การอ้างอิงถึงเอกสารที่จะลบ |
ผลตอบแทน:
อินสแตนซ์ WriteBatch
นี้ ใช้สำหรับการเรียกวิธีการผูกมัด
WriteBatch.set()
เขียนไปยังเอกสารที่อ้างอิงโดย DocumentReference ที่ให้ไว้ . หากยังไม่มีเอกสารก็จะถูกสร้างขึ้น
ลายเซ็น:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): WriteBatch;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เอกสารอ้างอิง | เอกสารอ้างอิง <AppModelType, DbModelType> | การอ้างอิงถึงเอกสารที่จะตั้งค่า |
ข้อมูล | ด้วยค่าฟิลด์ <AppModelType> | วัตถุของเขตข้อมูลและค่าสำหรับเอกสาร |
ผลตอบแทน:
อินสแตนซ์ WriteBatch
นี้ ใช้สำหรับการเรียกวิธีการผูกมัด
WriteBatch.set()
เขียนไปยังเอกสารที่อ้างอิงโดย DocumentReference ที่ให้ไว้ . หากยังไม่มีเอกสารก็จะถูกสร้างขึ้น หากคุณระบุ merge
หรือ mergeFields
ข้อมูลที่ให้ไว้สามารถรวมเข้ากับเอกสารที่มีอยู่ได้
ลายเซ็น:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): WriteBatch;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เอกสารอ้างอิง | เอกสารอ้างอิง <AppModelType, DbModelType> | การอ้างอิงถึงเอกสารที่จะตั้งค่า |
ข้อมูล | บางส่วนด้วยFieldValue <AppModelType> | วัตถุของเขตข้อมูลและค่าสำหรับเอกสาร |
ตัวเลือก | ตั้งค่าตัวเลือก | วัตถุเพื่อกำหนดค่าพฤติกรรมการตั้งค่า |
ผลตอบแทน:
อินสแตนซ์ WriteBatch
นี้ ใช้สำหรับการเรียกวิธีการผูกมัด
ข้อยกเว้น
ข้อผิดพลาด - หากอินพุตที่ระบุไม่ใช่เอกสาร Firestore ที่ถูกต้อง
WriteBatch.อัพเดต()
อัปเดตฟิลด์ในเอกสารที่อ้างถึงโดย DocumentReference ที่ให้ไว้ . การอัปเดตจะล้มเหลวหากนำไปใช้กับเอกสารที่ไม่มีอยู่
ลายเซ็น:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): WriteBatch;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เอกสารอ้างอิง | เอกสารอ้างอิง <AppModelType, DbModelType> | การอ้างอิงถึงเอกสารที่จะอัปเดต |
ข้อมูล | อัปเดตข้อมูล <DbModelType> | ออบเจ็กต์ที่มีเขตข้อมูลและค่าที่ใช้อัปเดตเอกสาร ช่องต่างๆ สามารถมีจุดเพื่ออ้างอิงช่องที่ซ้อนกันภายในเอกสารได้ |
ผลตอบแทน:
อินสแตนซ์ WriteBatch
นี้ ใช้สำหรับการเรียกวิธีการผูกมัด
ข้อยกเว้น
ข้อผิดพลาด - หากอินพุตที่ให้มาไม่ใช่ข้อมูล Firestore ที่ถูกต้อง
WriteBatch.อัพเดต()
อัปเดตฟิลด์ในเอกสารที่อ้างถึงโดย DocumentReference นี้ . การอัปเดตจะล้มเหลวหากนำไปใช้กับเอกสารที่ไม่มีอยู่
ฟิลด์ที่ซ้อนกันสามารถอัปเดตได้โดยการจัดเตรียมสตริงพาธของฟิลด์ที่คั่นด้วยจุด หรือโดยการจัดเตรียมออบเจ็กต์ FieldPath
ลายเซ็น:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เอกสารอ้างอิง | เอกสารอ้างอิง <AppModelType, DbModelType> | การอ้างอิงถึงเอกสารที่จะอัปเดต |
สนาม | สตริง | FieldPath | ช่องแรกที่จะอัพเดต |
ค่า | ไม่ทราบ | ค่าแรก |
เพิ่มเติมFieldsAndValues | ไม่ทราบ[] | คู่ค่าคีย์เพิ่มเติม |
ผลตอบแทน:
อินสแตนซ์ WriteBatch
นี้ ใช้สำหรับการเรียกวิธีการผูกมัด
ข้อยกเว้น
ข้อผิดพลาด - หากอินพุตที่ให้มาไม่ใช่ข้อมูล Firestore ที่ถูกต้อง