firebase - Firebase Functions 模拟器失去与 Firestore 的连接
问题描述
我有一个设置,我可以在本地模拟我的 Cloud Functions,它们可以访问我的 Firestore 数据库。它曾经很好地用于开发和测试,但最近它失去了与 Firestore 数据库的连接。
我想知道是否有其他人遇到过这个问题或有想法,如何解决?
由于我不明白,发生了什么变化,以下是我尝试和观察到的事情的列表:
- 我已将 firebase-tools、firebase-admin 和 firebase-functions 更新到最新版本
- 我将 GOOGLE_APPLICATION_CREDENTIALS 存储在计算机上的 json 文件中,然后运行
firebase emulators:start
启动服务器并正常运行我的功能。 - 但是,当函数请求数据库时,它不会抛出错误,而只是返回空结果集。
- 如果我在一个函数中向数据库添加新文档,然后在同一函数中查询集合,我会得到新创建的文档。所以这让我想,我已经进入了某种测试模式?
抱歉缺少代码,但我真的不知道从哪里开始这些“它曾经有效”的情况......
解决方案
显然现在
firebase emulators:start
...将不再将您连接到真正的 Firestore 数据库,因为它模拟 Firestore 数据库。如果你跑
firebase emulators:start --only functions
..它根据提供的凭据连接到 Firestore。我不确定何时引入了这种行为,但希望这可以帮助其他遇到同样情况的人。
我现在正在运行最新版本:
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.1"
推荐阅读
- xml - 下载字符串的编码问题(UTF-8、ISO-8859-1、FSharp.Data)
- html - 滚动时,将元素从屏幕底部转换到屏幕中心并保持居中,直到该部分的底部接触视口的底部
- python - 在熊猫中达到某个值时的列长度
- c# - 为什么是列表
Tasks.Run( lambda ) 比 List 快 只是直接的异步方法调用? - java - 给定长度的平方和的递归查找顺序
- node.js - res.session 未定义 graphql apollo-server-express
- reactjs - 开玩笑测试中的功能仅在单独启动时有效,但不能同时启动
- snowflake-cloud-data-platform - 如何替换 snowflake.execute 语句中的循环结果?
- mysql - 使用 sakila 数据库按语言查找电影
- azure - Azure 事件中心 - 如何通过 https 从传感器接收数据?