firebase 函数输出(日志)与模拟器输出不同
Posted
技术标签:
【中文标题】firebase 函数输出(日志)与模拟器输出不同【英文标题】:firebase functions output(logs) differ from emulator output 【发布时间】:2021-09-08 01:03:05 【问题描述】:当我使用 firebase 模拟器在本地运行我的 firebase 函数时,它会提供一些输出(日志)。但是当我在firebase中部署它并在firebase控制台中查看日志时,它会为相同的代码提供不同的输出。 例如,我的文档中有一个字段(工作时间)。当我得到它的值时,它会给我一个时间戳,然后我使用 toDate() 方法将其转换为日期。转换不同于模拟器和实时 firebase 函数日志(相同的时间戳,相同的代码)。
这是代码
let workTime = doc.get('workTime');
console.log("workTime1 = "+workTime);
workTime = workTime.toDate();
console.log("workTime2 = "+workTime);
workTime = workTime.toString();
console.log("workTime3 = "+workTime);
workTime = workTime.substring(0,21);
console.log("workTime final = "+workTime);
模拟器中的功能日志
firebase 控制台中的函数日志
模拟器给出的日期时间是正确的。但是,实时firebase函数给出的日期是错误的。
【问题讨论】:
【参考方案1】:这可能是因为部署的 Cloud Functions 运行在与您不同的时区。如果你特别想要印度时间,你可以试试这个:
const d = Date.now() // Current Timestamp
const timeInIndia = new Date(d + (5.5*60*60*1000)).toISOString()
// Output: "2021-06-24T19:46:44.513Z"
您可以在MDN 上阅读有关Date
对象的更多信息并自定义字符串的格式。
【讨论】:
以上是关于firebase 函数输出(日志)与模拟器输出不同的主要内容,如果未能解决你的问题,请参考以下文章