我想使用for循环写入批处理日期数据,但是控制台没有另外说明,但是它没有用。我认为它仅在Firebase控制台中针对最后一次迭代进行了更新。我已经尝试了2天了,不知道什么了!
const handleSubmit = e => {
e.preventDefault()
const stdRoom = firebase.firestore().collection("stdRoom").doc()
let i;
let momentDate = moment("June 7 2020").startOf("day")._d
for ( i=0 ; i<10 ; i++){
stdRoom.set({avail: 7, date: momentDate })
.then(function() {
console.log("Document successfully written!");
})
.catch(function(error) {
console.error("Error writing document: ", error);
});
momentDate = moment(momentDate).add(1,"d").startOf("day")._d
console.log(momentDate)
}
我尝试过batch()并在退出循环后提交,但无济于事。我正在使用momentjs进行日期处理。如果我一一做,那就行了。
这是旅馆房间。我想在这种情况下将标准房的可用性设置为10天,每天(可能为365天)设置为7。有什么解决办法吗?预先感谢。
答案 0 :(得分:3)
您正在写入同一文档:
const stdRoom = firebase.firestore().collection("stdRoom").doc()
在for循环中:
for ( i=0 ; i<10 ; i++)
stdRoom.set({avail: 7, date: momentDate })
Firestore将文档写入速度限制为每秒1次,而此for循环将违反该限制。请参阅写入和交易here