小编gre*_*g0r的帖子

使用模拟器测试 Firestore 规则时如何设置测试数据?

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

8
推荐指数
1
解决办法
5404
查看次数