无法从Firebase Functions向Firestore写入(几天前相同的代码正在工作)

时间:2019-07-12 20:16:21

标签: firebase google-cloud-firestore google-cloud-functions

我有一个工作代码停止工作。这是一个Firebase函数,正在Firestore中编写一些文档。这是代码+ Google Cloud Functions中的日志(我使用Flow进行强类型输入,并且模糊了一些机密内容):

enter image description here enter image description here

enter image description here

Firebase和Google Cloud的状态页面说一切都很好。我检查了我的帐单配置,看来还可以。我确保我的库没有更新到任何新版本。我当前的版本如下:

“ firebase-admin”:“ 8.2.0”,

“ firebase功能”:“ 3.0.2”,

“ firebase-tools”:“ 7.0.0”

我做了几个小时的工作:将库firebase-tools@^7.0.0降级为firebase-tools@7.0.0(删除了^),从我的firebase项目中删除了该Web应用,创建了一个新的函数,该函数又重新开始工作。但是只有几个小时。

我不知道发生了什么。我将不胜感激任何帮助。即使您没有解决方案,知道您是否正在尝试类似的操作也会很有帮助,因为这也可能是一个新的firebase错误。谢谢

1 个答案:

答案 0 :(得分:0)

我不知道这是否相关,但是您的代码未正确处理错误。

首先,storeDocInFirestore函数内的try / catch块不是必需的,因为您只返回了一个promise。捕获部分永远不会到达。

第二,如果发生问题,从storeDocInFirestore函数返回的promise的catch方法不会引发错误。您只返回错误消息,但错误本身被抑制。

第三,似乎您在云函数中使用了另一个try / catch块,但是由于您抑制了Firestore操作中的错误,因此即使出现错误,函数也总是会成功。

也许这会导致您的行为。

编辑:

我认为问题出在await promise.all(firestorePromises)部分。

如果您在.catch()上没有promise.all()方法,则所有承诺错误都将被忽略。

.catch(err => console.log(err))上使用promise.all()方法,您可能会看到Firestore错误。