代码之家  ›  专栏  ›  技术社区  ›  Daniel

如何编写Firestore规则,只允许使用webapy键调用restapi?

  •  0
  • Daniel  · 技术社区  · 6 年前

    直截了当:我正在使用restapi调用,我希望规则只在它们包含数据库的web键时才接受调用。

    match /{document=**} {
      allow read, write: if request.key == "my_Web_API_key";
    }
    

    但是当我打电话给你的时候

    GET https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/users?key=my_Web_API_key
    

    它回报了我 . 我已经试过了

    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
    

    但它给了我同样的结果。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Doug Stevenson    6 年前

    您没有正确使用firestorerestapi。它不接受 key API documentation ,您必须使用以下任一身份验证:

    • 使用Firebase ID令牌来验证来自应用程序用户的请求。对于这些请求,cloudfirestore使用Cloud

    • 数据库管理。对于这些请求,Cloud Firestore使用 身份和访问管理(IAM)来确定请求是否

    如果您需要Firebase Auth用户发出请求,则必须使用第一个选项。

    如果您没有提供这两个令牌,那么API将只能读取不需要任何身份验证的文档。也就是说你不能要求 request.auth.uid != null .