javascript - Firestore batch.commit() 第一次调用时不会将数据发送到服务器

标签 javascript firebase google-cloud-firestore

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

当我第二次单击上传按钮时,数据就会上传,并且控制台中会出现完成消息。这是怎么回事?

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}`))
}

最佳答案

我通过将 const db = firebase.firestore() 移动到另一个位置来使其工作,该位置将在应用程序启动时执行,而不是在上传发生之前执行。我在文档中没有看到任何说明需要这样做,所以我打开了 issue .

关于javascript - Firestore batch.commit() 第一次调用时不会将数据发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702008/

相关文章:

javascript - 遍历 Stylus 中的嵌套对象

javascript - 拆分链接并插入到表单中

javascript - 在 Firebase 函数中按 documentId 查询

javascript - 该表达式不会计算为函数,因此在使用 auth.currentUser 时无法调用它

javascript - 字符串不是窗口位置 href 上的函数

javascript - PHP-从基于另一个下拉列表的数据插入

android - Firebase 数据库如何根据子值获取节点?

android - E/FirebaseInstanceId : Token retrieval failed: AUTHENTICATION_FAILED - what changed?

php - Firebase 无效的自定义 token

java - 查询 Firestore 中集合中的不同字段