firestore batch.commit()成功但doc.get()失败

时间:2018-01-03 16:42:58

标签: firebase google-cloud-firestore

我正在构建一个使用firebase作为后端的反应应用程序。

我有一个工作流程,我使用batch.commit()

提交4个文档
batch.set(key1, obj1)
batch.set(key2, obj2)
batch.set(key3, obj3)
batch.set(key4, obj4)
let promise = batch.commit()

我的理解是,一旦承诺解决,文件就会被写入后端。

然后,如果我这样做,

db.collection(collectionKey).doc(key1).get()

我收到错误

  

缺少权限或权限不足

但是,如果我继续尝试获取该文档,获得通话最终会在大约3-5s后返回预期文档。

我做错了什么?这是预期的beta行为吗?

我发现这篇文章似乎表明这是一个已知的问题,但这是一个基本的用例,我几乎可以肯定错误是我的实现。

https://groups.google.com/forum/#!searchin/firebase-talk/get $ 20latency%7Csort:日期/火力通话/ MpS6C-ZxdZ0 / EYNWdveIAwAJ

任何有见识的人都会感激不尽。

--------更新Jen Person ------------

我实际上在做异步/等待。但我也尝试过做一个普通的promise.then(回调)

try{
    await batch.commit(dataArr)
} catch (err){
    console.error('Error Batch Saving', err)
    throw err;
}
this.setState({isProcessing: false})

我的get函数实际上是在onClick处理程序中。注册onClick的组件仅在batch.commit promise解析且this.state.isProcessing为false后才可见

我也试过像

这样的东西
db.collection(collectionKey).doc(key1).get()
    .then( res=>{
        this.setState({isProcessing:false})
    })

0 个答案:

没有答案
相关问题