4

我正在使用 jest 对 Firestore 执行集成测试。我希望收到包含等于 field1 和 field2 的字段的文档。但是,我收到了以下错误。

我曾尝试在 firecase 控制台中创建复合索引,但问题仍然存在。这种情况似乎只发生在测试期间,因为当我正常运行 Node.js 应用程序时代码工作正常。我已将错误范围缩小到来自以下代码:

const response = await fs.collection('collection1').where('field1', '==', field1).where('field2', '==', field2).get();

错误信息是这样的:

Error: FirebaseError: [code=invalid-argument]: Document parent name "projects/int-test-1-5tb01cf1-poiu-0qa8-lk87-e1aeff685f2d/databases/(default)" lacks "/" at index 76.
4

2 回答 2

0

您的 firebase 工具刚刚从 6.9 更新到 7.0。

这是版本 7 中的重大更改。

我们通过将最高版本设置为 6.9 来修复它。我会找到设置版本的行...一秒钟。

所以我们使用脚本进行测试,脚本中的行是......

sudo npm install --unsafe-perm -g firebase-tools@6.9.2

您应该能够将 6.9.2 设置为您的最高版本的 firebase 工具来解决此问题。

于 2019-06-19T22:13:28.950 回答
0

将包 @firebase/testing 升级到版本 0.11.8(与 firebase-admin 8.3.0 匹配)并运行 7.2.0 版本的模拟器为我解决了这个问题。

于 2019-07-31T05:01:47.197 回答