无法从Firebase检索日期



我有一个Firebase函数,它从Firestore中检索一些数据。我可以向客户端显示除日期之外的所有信息,这些日期作为空对象返回给客户端。

Firebase功能:

exports.getPosts = functions.https.onCall(async (data, context) => {
.....
const querySnapshot = await db.collection("posts").get();
var posts = querySnapshot.docs.map(doc => ({
id: doc.id,
author: doc.data().author,
message: doc.data().message,
lastChangeDate: doc.data().lastChangeDate.toDate(),
}));
console.log(posts);
return posts;
.....

我还使用toDate((将lastChangeDate从Timestamp转换为Javascript对象日期。控制台.log显示:

{
id: 'doc id',
author: 'Bill',
message: 'blah blah',
lastChangeDate: 2021-04-24T08:03:01.024Z
}

客户端:

然后,在我的客户端中,我尝试在调用firebase函数后检索数据,但我得到了一个仅用于lastChangeDate的空对象。

const snapshot = firebase.functions().httpsCallable("getPosts");
var doc = await snapshot();
var array = doc.data.map(item => ({
id: item.id,
author: item.author,
message: item.message,
lastChangeDate: item.lastChangeDate,
}));
console.log(array);

控制台.log显示:

{id: "xxxxxxxxxx", author: "Bill", message: "blah blah", lastChangeDate: {…}}
author: "Bill"
id: "xxxxxxxxxx"
lastChangeDate: Object
__ob__: Observer {value: {…}, dep: Dep, vmCount: 0}
__proto__: Object**
message: "blah blah"
....

正如您所看到的,lastChangeDate作为一个空Object返回到客户端,我无法正确显示Date并将其解析为任何格式。

我的代码出了什么问题?请帮助

Firebase Function中的lastChangeDate无法进行JSON编码,因此您应该自己将lastChangeDate: doc.data().lastChangeDate.toDate(),更改为lastChangeDate: doc.data().lastChangeDate.toDate().toJSON(),并在客户端上解析该日期字符串。

相关内容

  • 没有找到相关文章

最新更新