为什么我在Firebase Cloud Firestore Emulator UI中看不到数据?

csbfibhn  于 2023-06-07  发布在  其他
关注(0)|答案(3)|浏览(684)

我对安全规则进行了一些测试,它们将一个数据集添加到本地Firestore模拟器(使用@firebase/testing库,与here描述的非常相似)。测试基本上是有效的,所以我认为数据真的可以到达Firestore。
但我在模拟器UI中看不到它。
http://localhost:4000/> Firestore emulator >转到模拟器显示空数据
相关的,我想知道“项目ID”参数在仿真中的作用是什么?设置Firebase应用程序对象时需要它,但它在哪里使用?模拟器没有提供模拟项目列表供我选择。
困惑。
复制方式(根据要求):

$ git clone git@github.com:akauppi/GroundLevel-es6-firebase-web.git
$ cd GroundLevel-es6-firebase-web/rules-test

# You only need to work in the rules-test subproject

$ npm install
...

在另一个终端(同一个文件夹)中:

$ npm run start    # leave running...
$ npm run test:symbols

测试应通过(跳过一项)。
测试的运行已经将数据准备好到模拟器,并且它应该仍然在那里。项目ID abc(请参见“使用会话:输出上的“abc”)。
http://localhost:4000/>转到模拟器

预期:

  • 能够选择项目abc
  • 能够看到预处理的数据(顺便说一句。data.js
    实际:
  • 没有项目id选择
  • 没有数据

我知道的太少了,不知道发生了什么。也许@firebase/testing永远不会到达模拟器,我应该使用普通的Firebase客户端,而不是?

q35jwt9p

q35jwt9p1#

模拟器UI仅显示活动项目,即在firebase use中使用的那个。
如果测试使用此项目ID,则其数据在模拟器中可见。如果他们使用一些其他的,测试工作,但模拟器用户界面是在循环之外。
不知道这是不是设计的。如果您知道文档中的某个地方解决了这个问题,我很乐意在这里提到它。
firebase-tools 8.6.0

ttcibm8c

ttcibm8c2#

我在模拟器中使用了一个假的项目ID,就像API密钥一样。我不得不使用我的projectId来解决这个问题。多亏了这个GitHub问题。
当调用admin.initializeApp()时,您需要设置正确的projectId,然后数据将显示出来。

vawmfj5a

vawmfj5a3#

今天我也碰到了这个。
对我来说,问题是我不小心从项目中删除了.firebaserc文件(这是gitignored)。
因此,模拟器UI根本不会显示任何Firestore文档。
firebase use --add重新添加项目解决了这个问题。
但我在这上面浪费了很多时间。如果缺少任何必需的配置文件,人们希望仿真器应该抛出致命错误。😬

相关问题