Firebase Firestore Emulator UI未显示任何数据,但数据正在应用程序查询中返回



我正面临firebase的firestore模拟器的一个奇怪问题。当我启动模拟器并检查模拟器的firestore UI时,它显示数据库中还不存在任何数据。

然后,我尝试在firestore模拟器中查询我的react原生应用程序中的数据,令人惊讶的是,上一次会话中的旧数据又回来了。我被返回了我在上一个会话中添加的数据,但它在模拟器UI上不可见。

我的印象是,关闭模拟器会删除在该会话期间添加的任何数据,所以,下次启动模拟器时,为什么我会看到上一个会话中的数据?就好像它被缓存在某个地方。。。?

我在堆栈溢出上看到过多篇关于--project参数被提供给firebase emulators:start终端命令的帖子。这似乎对我的情况没有任何影响。

如果有任何解决建议,我将不胜感激。

根据我的经验,必须将应用程序连接的项目与Firebase CLI当前使用的项目相匹配。否则,Firestore Emulator UI不会显示与应用程序的实时交互。

具体而言,应用程序正在使用其google-service.jsonGoogleService-Info.plist文件的Firebase项目必须与firebase projects:list输出中当前使用的项目相匹配。

如果两个项目不匹配,应用程序仍然可以连接到模拟器;数据读写也可以;但是Firestore Emulator的实时UI不会显示任何内容。

事实证明,firebase本机版本有某种缓存机制,其行为有点奇怪。

对我有效的解决方案是,我从模拟器/设备中删除了我正在开发的应用程序,并确保我点击";删除所有应用程序数据";如果提示。

在那之后,我会安装新鲜的,燃烧室会像预期的那样运作良好。

我的问题是由在两个不同端口上运行的模拟器UI引起的。我正在查看的端口来自一个未正确关闭的旧进程。

切换到";日志";选项卡,并查看是否有类似的消息

Emulator UI无法在端口4000上启动,而是在4003上启动。

如果是,请确保在端口4003而不是4000上查看模拟器(在本例中(,或者终止在端口4000上运行的旧进程,然后重新启动模拟器。

在我看来,这些版本是在影响UI和firebase函数的函数中更新的:shell。

我在这里更新了npm i firebase工具最新版本,如npm安装firebase-tools@11.14.0。然后重新启动模拟器,它现在工作正常。

最新更新