我正在使用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