我正在开玩笑地对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.
答案 0 :(得分:0)
您的Firebase工具刚刚从6.9更新到7.0。
这是版本7中的重大更改。
我们通过将最高版本设置为6.9来修复了该问题。我会在一行中设置版本...一秒钟。
因此,我们使用脚本进行测试,脚本中的行是...
sudo npm install --unsafe-perm -g firebase-tools@6.9.2
您应该可以将6.9.2设置为Firebase工具的最高版本来解决此问题。
答案 1 :(得分:0)
将软件包@ firebase / testing升级到版本0.11.8(与firebase-admin 8.3.0匹配)并运行模拟器的7.2.0版本为我解决了此问题。