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

FireStore安全规则请求参数

  •  2
  • Ben  · 技术社区  · 6 年前

    在FireStore安全规则中,是否可以访问作为列表请求一部分发送的参数?

    目标:我要检索 single 发布文档,即 published ,通过使用 slug 属性。

    查询:

    let postDoc = this.afs.collection( 'posts', ref => ref
        .where( 'published', '==', true )
        .where( 'slug', '==', slug )
        .limit( 1 )
    );
    

    规则:

    allow list: if ( resource.data.published == true )
                && ( resource.data.slug == request.resource.data.slug )
                && request.query.limit <= 1;
    

    问题:这会导致“无权限”错误。但是,如果我移除 ( resource.data.slug == request.resource.data.slug ) 它工作得很好。我想问题是 request.resource.data.slug 只存在于写请求中,不存在于读请求中(请参见 https://firebase.google.com/docs/reference/rules/rules.firestore.Request )

    有什么方法可以让这个工作吗?

    0 回复  |  直到 6 年前