Firebase Firestore用Timestamp.now()返回值重建实例报nanoseconds超出范围问题
异常成因与解决方案
核心原因是调用Timestamp构造函数时传参顺序错误:
firebase.firestore.Timestamp构造函数的入参规则为第一个参数传入秒级时间戳(seconds),第二个参数传入纳秒偏移值(nanoseconds),其中纳秒值要求必须落在0 ~ 999999999区间内。- 你在重建实例时,直接按照打印输出的JSON字段顺序传参,将纳秒值
89000000填入了第一个参数位(应为秒值),将秒值1631289143填入了第二个参数位(应为纳秒值),1631289143远大于纳秒的最大允许值999999999,因此触发「纳秒超出范围」的报错。
正确的构造写法为:
new firebase.firestore.Timestamp(1631289143, 89000000)
注意:打印输出的JSON字段排序不代表构造函数的入参顺序,调用前需确认SDK定义的参数规则,不要直接按打印字段顺序填参。
内容的提问来源于stack exchange,提问作者Kubaguette The Testobun
相关产品推荐
相关产品推荐

