[英]Firebase Firestore Emulator UI is not showing any data, but data is being returned in app query
我在使用 firebase 的 firestore 模拟器时遇到了一个奇怪的问题。 当我启动模拟器并检查模拟器的 firestore UI 时,它显示数据库中还没有数据。
然后,我尝试查询 firestore 模拟器以获取来自我的 react-native 应用程序的数据,令人惊讶的是,来自之前 session 的旧数据又回来了。 我正在返回我在之前的 session 中添加的数据,但它在模拟器 UI 上不可见。
我的印象是关闭模拟器会删除在 session 期间添加的所有数据,所以,下次启动模拟器时,为什么我会看到以前的 session 中的数据? 好像它以某种方式缓存在某个地方......?
我在 stack-overflow 上看过多篇关于将--project
参数提供给firebase emulators:start
terminal 命令的帖子。 这似乎对我的情况没有任何影响。
对于解决问题的任何建议,我将不胜感激。
根据我的经验,必须将应用程序连接到的项目与当前使用的项目 Firebase CLI 相匹配。 否则,Firestore 模拟器 UI 不会显示与应用的实时交互。
To be specific, the Firebase project whose google-service.json
or GoogleService-Info.plist
files are being used by the app must match the project currently being used in the output of firebase projects:list
.
如果两个项目不匹配,应用仍然可以连接到模拟器; 数据读写也可以; 但实时 Firestore 模拟器 UI 不会显示任何内容。
事实证明,firebase 原生版本有某种缓存机制,有点奇怪。
对我有用的解决方案是,我从模拟器/设备中删除了我正在开发的应用程序,并确保在出现提示时点击“删除所有应用程序数据”。
之后,我会重新安装,firebase 会按预期运行。
我的问题是由在两个不同端口上运行的模拟器 UI 引起的。 我正在查看的端口来自一个没有正常关闭的旧进程。
切换到“日志”选项卡,查看是否有类似的消息
模拟器 UI 无法在端口 4000 上启动,而是在 4003 上启动。
如果是这样,请确保您在端口 4003 而不是 4000(在此示例中)上查看模拟器,或者终止在端口 4000 上运行的旧进程,然后重新启动模拟器。
从我的角度来看,版本更新会影响 UI 和 firebase 功能的功能:shell。
在这里,我用最新版本更新了 npm i firebase-tools ,例如npm install -g firebase-tools@11.14.0 。 然后重新启动模拟器,它现在工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.