【问题标题】:Validate Angular FireStore rules without Google OAuth在没有 Google OAuth 的情况下验证 Angular FireStore 规则
【发布时间】:2020-09-28 07:44:36
【问题描述】:

我已经设置了一个 Google Firestore 数据库,并且我想保护这些规则。 我的 ACTUAL 数据库中已有用户,但并不是每个人都有 Google 帐户,因此我想以任何其他方式对他们进行身份验证,以便验证他们是否可以访问数据库项目。

此时我可以使用如下代码: this.firestore.collection('myCollection').doc('IDHERE').delete();

是否可以从我的后端生成一个特定于用户的密钥并将其保存到每个项目中,然后添加一条规则以查看该密钥是否已提交? 所以我想在上面的delete函数中添加一个特定的key,让Firebase在item中检查它。 我只能看到你可以检查一个 auth.user.id,但如果可能的话我想用另一种方式检查它!

提前致谢!

【问题讨论】:

标签: angular google-cloud-firestore google-cloud-functions angularfire2


【解决方案1】:

您可以访问 collection->document 中的每个字段并检查其值。 在我的情况下,我创建了一个基于角色的身份验证,因此如果用户通过谷歌或我的自定义身份验证连接,我将检查正确的角色以定义他是否可以执行所需的操作。

布尔角色示例;

match /CollectionName/{document} {
  function canAccess(role) {
    return resource.data.role == true;
  }
    allow read;
    allow update: if canAccess('role1');
    allow create,delete: if canAccess('role2');
}

正如@sllopis 所述,附加的link 包含上述流程。

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 2023-03-21
    • 2014-04-13
    • 2012-02-18
    • 1970-01-01
    • 2019-06-02
    • 2019-02-15
    • 2021-07-23
    相关资源
    最近更新 更多