Google cloud firestore 仅通过云功能在firestore中读写

Google cloud firestore 仅通过云功能在firestore中读写,google-cloud-firestore,google-cloud-functions,firebase-security,Google Cloud Firestore,Google Cloud Functions,Firebase Security,我想设置我的Cloud Firestore数据库权限,以便除了通过云函数之外,没有人能够从中读写 我该怎么做 根据Firestore文档,我的猜测是我必须为我想要的东西设置正确的条件,但会是什么条件呢?我不知道如何将云函数调用与规则进行通信 service cloud.firestore { match /databases/{database}/documents { match /<some_path>/ { allow read, write: if &

我想设置我的Cloud Firestore数据库权限,以便除了通过云函数之外,没有人能够从中读写

我该怎么做

根据Firestore文档,我的猜测是我必须为我想要的东西设置正确的条件,但会是什么条件呢?我不知道如何将云函数调用与规则进行通信

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

只需删除所有规则,并将其替换为拒绝所有内容的规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

如果没有明确允许移动和web客户端访问的内容,则不允许任何内容。服务器SDK总是绕过安全规则,因此只要用于初始化SDK的服务帐户具有写访问权限,它就可以工作。云功能中使用的默认服务帐户应该可以使用。

只需删除所有规则,并将其替换为拒绝所有内容的规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

如果没有明确允许移动和web客户端访问的内容,则不允许任何内容。服务器SDK总是绕过安全规则,因此只要用于初始化SDK的服务帐户具有写访问权限,它就可以工作。云函数中使用的默认服务帐户应该可以。

我不能像您那样写,它说第3行:“匹配”主体必须至少包含一个声明。抱歉,已编辑。只需添加一个拒绝所有访问的规则。我总是觉得这些规则有点难以理解,因为我仍然不知道如何为每种情况编写特定的条件。我仍然会读到它,但同时这似乎足够好,谢谢!是的,很多人都同意。我们Firebase团队正在编写更好的文档和教程,以帮助更好地理解安全规则。我无法像您那样编写,它说第3行:“匹配”正文必须至少包含一个声明。抱歉,已编辑。只需添加一个拒绝所有访问的规则。我总是觉得这些规则有点难以理解,因为我仍然不知道如何为每种情况编写特定的条件。我仍然会读到它,但同时这似乎足够好,谢谢!是的,很多人都同意。我们Firebase团队正在编写更好的文档和教程,以帮助更好地理解安全规则。