无法将日历数据保存到 Firebase
Unable to save calendar data into firebase
我正在我的应用程序中创建大厅预订功能。在此应用程序中,我想保存大厅预订的开始日期和时间以及结束日期和时间。当用户预订大厅一整天时,日期颜色应该更改。
这里我可以从日历中获取数据,但它没有被插入到 firebase 数据库中。唯一插入的数据是 UID
和 allDay
字段。我该怎么做才能解决这个问题?
这是我的代码。
addEvent() {
let modal = this.modalCtrl.create('EventModalPage', {
selectedDay: this.selectedDay
});
modal.present();
modal.onDidDismiss(data => {
if (data) {
let eventData = data;
eventData.startTime = new Date(data.startTime);
eventData.endTime = new Date(data.endTime);
let events = [];
events.push(eventData);
// this.eventSource = [];
setTimeout(() => {
this.eventSource = events;
console.log(this.eventSource);
let startTime = this.eventSource['0'].startTime;
let endTime = this.eventSource['0'].endTime;
let allDay = this.eventSource['0'].allDay;
console.log(startTime);
let currentUserUid = this.fire.auth.currentUser.uid;
firebase.database().ref('bookingHall/').push({
uID: currentUserUid,
startTime: startTime,
endTime: endTime,
allDay: allDay,
});
});
}
});
}
Firebase 实时数据库仅存储 JSON 类型。您的 startTime
和 endTime
是 JavaScript Date
对象,它们不是有效的 JSON 类型。要允许存储日期,请存储时间戳(自纪元以来的毫秒数)或值的可排序字符串表示形式 (20181101T034027
)。
另见:
- Firebase new Date()?
- Firebase Date storage goes wrong
- Storing date in Firebase
我正在我的应用程序中创建大厅预订功能。在此应用程序中,我想保存大厅预订的开始日期和时间以及结束日期和时间。当用户预订大厅一整天时,日期颜色应该更改。
这里我可以从日历中获取数据,但它没有被插入到 firebase 数据库中。唯一插入的数据是 UID
和 allDay
字段。我该怎么做才能解决这个问题?
这是我的代码。
addEvent() {
let modal = this.modalCtrl.create('EventModalPage', {
selectedDay: this.selectedDay
});
modal.present();
modal.onDidDismiss(data => {
if (data) {
let eventData = data;
eventData.startTime = new Date(data.startTime);
eventData.endTime = new Date(data.endTime);
let events = [];
events.push(eventData);
// this.eventSource = [];
setTimeout(() => {
this.eventSource = events;
console.log(this.eventSource);
let startTime = this.eventSource['0'].startTime;
let endTime = this.eventSource['0'].endTime;
let allDay = this.eventSource['0'].allDay;
console.log(startTime);
let currentUserUid = this.fire.auth.currentUser.uid;
firebase.database().ref('bookingHall/').push({
uID: currentUserUid,
startTime: startTime,
endTime: endTime,
allDay: allDay,
});
});
}
});
}
Firebase 实时数据库仅存储 JSON 类型。您的 startTime
和 endTime
是 JavaScript Date
对象,它们不是有效的 JSON 类型。要允许存储日期,请存储时间戳(自纪元以来的毫秒数)或值的可排序字符串表示形式 (20181101T034027
)。
另见:
- Firebase new Date()?
- Firebase Date storage goes wrong
- Storing date in Firebase