Firestore batch.commit()不会在首次调用时将数据发送到服务器

时间:2019-08-29 01:58:59

标签: javascript firebase google-cloud-firestore

我有一个React Web应用程序,我正在尝试批量上传到Firestore。我有一个触发下面功能的上传按钮。第一次单击该按钮时,我在日志中看到第一条消息,仅此而已-batch.commit()返回的promise既未解决也不被拒绝,因此其他任何控制台消息均不会出现。网络标签中没有任何内容。

当我第二次单击上载按钮时,数据被上载,并且 Done 消息出现在控制台中。发生了什么事?

const onUploadClick = () => {
  const db = firebase.firestore()
  const batch = db.batch()

  const nycRef = db.collection('activities').doc('NYC')
  batch.set(nycRef, { name: 'New York City' })

  console.log('The batch is set to go.')

  batch
    .commit()
    .then(function() {
      console.log('Done.')
    })
    .catch(err => console.log(`There was an error: ${err}`))
}

1 个答案:

答案 0 :(得分:0)

我通过将const db = firebase.firestore()移到应用启动时将要执行的位置而不是上载发生之前的位置来使其工作。我在文档中看不到任何说明需要这种方式的东西,因此我打开了issue