ฉันมีปัญหากับคลาส firebase.firestore.Timestamp
ฉันกำลังทำงานกับแอป Angular 6 พร้อม firestore ฉันใช้ Timestamps โดยไม่มีปัญหามาสักระยะหนึ่งแล้ว แต่ฉันอยู่ระหว่างการย้ายบริการฝั่งไคลเอ็นต์บางส่วนไปยังฟังก์ชันคลาวด์
ปัญหาคือ:
เมื่อฉันดำเนินการเขียนโดยตรงจากฝั่งไคลเอ็นต์ เช่นนี้:
const doc = { startTimestamp: firebase.firestore.Timestamp.fromDate(new Date()) };
firebase.firestore().doc('some_collection/uid).set(doc);
เอกสารได้รับการเขียนอย่างถูกต้องเพื่อ firestore เป็นการประทับเวลา
อย่างไรก็ตาม เมื่อฉันส่งเอกสารไปยังฟังก์ชันคลาวด์ จากนั้นทำการเขียนจากฟังก์ชัน เอกสารนั้นจะถูกเขียนเป็นแผนที่ ไม่ใช่การประทับเวลา ในทำนองเดียวกัน ถ้าฉันใช้วัตถุ JS Date() แทน firestore.Timestamp มันจะถูกเขียนอย่างถูกต้องจากฝั่งไคลเอ็นต์ แต่เขียนเป็นสตริงจากฟังก์ชันคลาวด์
สิ่งนี้สมเหตุสมผลเนื่องจากเอกสารเป็นเพียง JSON ใน request.body ฉันเดาว่าฉันแค่หวังว่า firestore จะฉลาดพอที่จะจัดการการแปลงโดยปริยาย
สำหรับตอนนี้ ฉันมีวิธีแก้ไขปัญหาเฉพาะหน้าที่เพิ่งแปลงวัตถุเป็น firestore ด้วยตนเอง การประทับเวลาอีกครั้งในฟังก์ชันคลาวด์ แต่ฉันหวังว่าจะมีวิธีแก้ไขที่มีประสิทธิภาพมากกว่านี้ อาจมีบางอย่างฝังอยู่ใน SDK ที่ฉันไม่สามารถค้นหาได้
มีใครเคยเจอและพบวิธีแก้ไขปัญหานี้หรือไม่
ฉันสามารถให้ตัวอย่างโค้ดเพิ่มเติมได้หากจำเป็น