【问题标题】:Display date from Firestore React native显示来自 Firestore React native 的日期
【发布时间】:2021-05-13 11:40:03
【问题描述】:

我尝试使用时刻显示为我从 Firestore 发布的帖子选择的事件日期。现在它只打印当天,所以我显示日期但不是正确的方式。我没有收到错误消息。我试图将时间戳更改为“dateUpload”。但它在我的文本组件中打印了“无效日期”。有没有人知道我能做什么?

这就是我的平面列表的显示方式:

postDate={moment(item.timestamp).format("ll")}

在我的 redux Action.js 中


export function fetchFollowingUsersPosts(uid) {
    return ((dispatch, getState) => {
        firebase.firestore()
            .collection("posts")
            .doc(uid)
            .collection("userPosts")
            .orderBy("creation", "asc")
            .get()
            .then((snapshot) => {

                const uid = snapshot.query.EP.path.segments[1];
                const user = getState().usersState.users.find(el => el.uid === uid);

                const posts = snapshot.docs.map((doc) => {
                    const { data: firebaseTimestamp, ...rest } = doc.data()
                    const id = doc.id;
                    const data = firebaseTimestamp ? moment(firebaseTimestamp.toDate()) : null
                  
                    return {
                      ...rest,
                      id,
                      user,
                      ...data
                    }
                  })

                //console.log(posts);
                dispatch({ type: USERS_POSTS_STATE_CHANGE, posts, uid,  })
            })
    })
}

我的数据库中的图像:

【问题讨论】:

    标签: react-native date redux expo redux-firestore


    【解决方案1】:

    而不是const data = firebaseTimestamp ? moment(firebaseTimestamp.toDate()) : null,试试这个const data = firebaseTimestamp ? firebaseTimestamp.toDate() : null ,这样你就会有一个javascript Date 对象,而不是Moment 对象。 然后,您可以像使用postDate={moment(item.timestamp).format("ll")} 一样使用它,假设item.timestamp 是上面的Date 对象

    【讨论】:

    • 感谢您的回答。它给了我相同的结果,我在我的数据库中添加了我尝试显示的图像(dateUpload)。
    • 好的,我明白了。但是,如果您打印它,当它来自 firebase 时,您的字段看起来如何?
    • 当我在我的平面列表中打印“item.timestamp”时,它会给我当天的日期。所以我得到了日期,但是如果我尝试“item.dateUpload”它会打印“无效日期”。
    • 而在您的item 中您要显示来自数据库的dateUpload 的字段是日期还是字符串?我不确定item.timestampitem.dateUpload 之间有什么联系。 invalid date 通常在您尝试格式化一个不是有效日期对象(通过使用时刻)的对象时出现,也不是一个有效的字符串
    • 我解决了。问题是当我上传我的帖子时。我只是在上传过程中添加了“时刻”。这样日期就变成了一个字符串。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-10-09
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多