我正在使用mocha
和 Firestore Emulator对 Cloud Firestore 规则进行测试,问题是如何在运行测试之前初始化一些测试数据?
为了测试我的规则,我首先需要初始化一些测试数据。问题是我在使用Emulator时无法将任何数据放入文档中,文档只有id
. 我没有找到建立在规则测试,测试数据的任何例子的文档,所以我试图同时使用
makeDocumentSnapshot
来自@firebase/testing
通过和创建文档管理应用与创造initializeAdminApp
。
用例:
要访问 中的文档/objects/{object_id}
,用户必须经过身份验证并具有read
权限:get('/objects/{object_id}/users/{$(request.auth.uid)}').data.read == true
。此外,object
必须可用:get('/objects/{object_id}').data.available == true
.
因此,为了测试我的规则,我需要一些具有用户权限的预设测试数据。
预期的数据库结构:
objects collection:
object_id: {
// document fields:
available (bool)
// nested collection:
users collection: {
user_id: {
// document fields:
read (bool)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的规则示例:
objects collection:
object_id: {
// document fields: …
Run Code Online (Sandbox Code Playgroud) firebase firebase-security google-cloud-firestore firebase-cli