繁体   English   中英

Firebase Firestore 模拟器 UI 未显示任何数据,但数据正在应用查询中返回

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM