所以我有日期字符串Friday, April 15, 2022
,我通过字符串操作将其转换为Thu Apr 14 2022 00:00:00 GMT+0100 (Irish Standard Time)
,现在我正在将其写入firebase,但它保存为字符串?
我把它写在firebase上,像这样:
const event = {
Time: eventTime,
start: newEventString,
title: eventName,
allDay: true
}
allEvents.push(event)
const db = fire.firestore();
db.collection("userEventsCal/"+currentUserUID+"/activities").add({event})
因为我使用的是reactFullCalendar,事件没有显示在日历中,因为我认为日期。
我调用用户事件信息如下,但当我使用toDate()上的事件开始日期,它不能在字符串上使用它,因为我知道firebase返回一个时间戳,所以我不知道如何去修复这个,因为没有事件显示在反应完整的日历。
const getUserInfo2 = async () => {
let currentUserUID = fire.auth().currentUser.uid
console.log(currentUserUID)
const qSnap = await fire
.firestore()
.collection('userEventsCal')
.doc(currentUserUID)
.collection("activities")
.get()
const data = []
data = (qSnap.docs.map(d => ({
id: d.id,
title: d.data().event.title,
start: d.data().event.start.toDate(),
allDay: d.data().event.allDay,...d.data() })));
setData([...data])
}
你必须保存一个日期或Firestore时间戳对象,以便将其保存为Firestore的时间戳,而不是具有特定格式的字符串:
const eventTime = "" // your date string
// TODO: convert the string to a Date
// const fireTimestamp = firebase.firestore.Timestamp.fromDate(new Date());
const eventTimeDate = new Date(eventTime)
// save this eventTimeDate in Firestore document
你可能需要格式化你的日期字符串一点使用Date()
构造器和创建一个日期对象。在JavaScript中将字符串解析为日期以获取更多信息。