Firebase 将于 5 月 10 日重返 Google I/O 大会!立即报名

จัดการสถานะการจัดส่งด้วยส่วนขยายอีเมลทริกเกอร์

เมื่อมีการเพิ่มเอกสารในคอลเลกชั่น ส่วนขยายจะดึงเอกสารนั้นมาเพื่อดำเนินการจัดส่งทางอีเมล ส่วนขยายสร้างและอัปเดตฟิลด์ delivery ในเอกสารขณะที่ประมวลผลอีเมล

การประมวลผลการส่งอีเมล

ฟิลด์ delivery สามารถเติมด้วยฟิลด์ต่อไปนี้:

  • สถานะ: หนึ่งใน PENDING , PROCESSING , SUCCESS , หรือ ERROR
  • startTime: การประทับเวลาเมื่อการประมวลผลอีเมลเริ่มต้นขึ้น
  • เวลาสิ้นสุด: การประทับเวลาเมื่อการประมวลผลอีเมลเสร็จสิ้น (นั่นคือสิ้นสุดในสถานะ SUCCESS หรือ ERROR )
  • ข้อผิดพลาด: หากมีข้อผิดพลาดในการส่งอีเมล ข้อความแสดงข้อผิดพลาดจะถูกเติมที่นี่
  • ความพยายาม: จำนวนความพยายามในการส่งอีเมลนี้
  • LeaseExpireTime: ในกรณีที่หยุดทำงานหรือหมดเวลา เวลาที่สถานะ PROCESSING ควรถือเป็นข้อผิดพลาด
  • ข้อมูล: หลังจากส่งอีเมลสำเร็จ (ไปยังที่อยู่อย่างน้อยหนึ่งแห่ง) ฟิลด์นี้จะถูกเติมด้วยฟิลด์ต่อไปนี้:
    • messageId: รหัสข้อความของอีเมลที่ส่ง
    • ยอมรับ: อาร์เรย์ของที่อยู่อีเมลที่ส่งอีเมลถึงได้สำเร็จ
    • ปฏิเสธ: อาร์เรย์ของที่อยู่อีเมลที่ไม่สามารถส่งอีเมลได้
    • รอดำเนินการ: อาร์เรย์ของที่อยู่อีเมลที่ถูกปฏิเสธชั่วคราวโดย SMTP
    • การตอบกลับ: การตอบกลับล่าสุดจากเซิร์ฟเวอร์ SMTP

โดยทั่วไป อีเมลจะเปลี่ยนจาก PENDING เป็น PROCESSING เป็น SUCCESS หรือ ERROR เมื่ออยู่ในสถานะ SUCCESS หรือ ERROR การเปลี่ยนแปลงเพิ่มเติมในเอกสารจะไม่ทำให้ส่วนขยายส่งอีเมลอีกฉบับ หากต้องการส่งอีเมลพร้อมการอัปเดตเอกสารอีกครั้ง คุณสามารถเปลี่ยน state เป็น PENDING หรือ RETRY

ลองใหม่ด้วยตนเอง

มีบางกรณีที่การส่งอีเมลล้มเหลวในแบบที่กู้คืนได้ หรือสามารถแก้ไขเอกสารด้วยตนเองเพื่อการจัดส่งที่เหมาะสมโดยมีการปรับเปลี่ยนเล็กน้อย แม้ว่าการลองใหม่จะไม่เป็นแบบอัตโนมัติ แต่คุณสามารถเปลี่ยน state ในช่อง delivery เป็น RETRY ได้ด้วยตนเอง เพื่อให้ส่วนขยายพยายามส่งอีเมลอีกครั้ง (และเพิ่มจำนวนครั้งที่ attempts )