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