【发布时间】:2020-04-16 03:21:22
【问题描述】:
我在 Gatsby 中格式化日期时遇到问题。我从firestore获取了一些数据。我找到的字段之一称为datePublished,它包含一个时间戳形式的数字(例如,1576945502000)。确实,它确实是一个时间戳,但它以number 格式类型保存到了firestore。
现在,我想使用 graphql 中的 formatString 函数来格式化 datePublished 字段——如下所述:https://www.gatsbyjs.org/docs/graphql-reference/#dates
但我无法让格式正常工作。无论我尝试在 graphiql 中还是在我的网站上格式化字符串,它都不起作用。这是我尝试过的代码:
query MyQuery {
allNewsFeed {
edges {
node {
published(formatString:"dddd Mo, YYYY")
}
}
}
}
这是我在 graphiql 中收到的错误消息:
未知参数“'NewsFeed' 类型的字段 'datePublished' 上的格式字符串。
如果我再深入一点,我注意到 firestore 中的字段类型被列为 number,而在 graphiql 文档资源管理器中它被列为 FloatQueryOperatorInput。
此外,我做了一个小实验,尝试在 firestore 中保存与 string、number 和 timestamp 相同的数字。字符串或数字格式都不起作用,无论出于何种原因,gatsby-firesource 插件都不会使用timestamp 格式拉入该字段。
所以我想知道,我该怎么做才能让它在 gatsby 中工作?
有什么想法吗?
谢谢。
【问题讨论】:
-
我不完全确定,但您似乎必须自定义 GraphQL 架构才能在
published字段上启用formatString。
标签: firebase google-cloud-firestore graphql gatsby