【问题标题】:Firestore Security on Path路径上的 Firestore 安全性
【发布时间】:2020-08-05 00:28:21
【问题描述】:

使用 Firestore 安全规则,我想知道是否可以使用 path 直接查看父文档?例如,对于子集合中的任何路径,我都想做以下事情:

match /myRootCollection/{myRootDoc=**} {
        allow write: if request.path.split('/')[0] === "myRootDoc1":
}

我知道我也可以只在子集合的文档中引用myRootDoc1

{
        myRootCollection: {
                {myRootDoc1}: {
                        mySubCollection: {
                                {mySubCollectionDoc1}: {
                                        name: "someUser0",
                                        parent: "myRootDoc1",
                                },
                                {mySubCollectionDoc2}: {
                                        name: "someUser1",
                                        parent: "myRootDoc1",
                                },
                                {mySubCollectionDoc3}: {
                                        name: "someUser2",
                                        parent: "myRootDoc1",
                                },

                        }
                {myRootDoc2}: {
                        mySubCollection: {
                                {mySubCollectionDoc1}: {
                                        name: "someUser3",
                                        parent: "myRootDoc2",
                                },
                                {mySubCollectionDoc2}: {
                                        name: "someUser4",
                                        parent: "myRootDoc2",
                                },
                                {mySubCollectionDoc3}: {
                                        name: "someUser5",
                                        parent: "myRootDoc2",
                                },

                        }
                }
                
                
                
        }
}

在这里,如果mySubCollectionDocs 在特定父级之下,我将能够阅读它们。上面的方法之所以有效,是因为我在每个文档中都直接有该字段,但是是否可以只读取 mySubCollectionDoc 并使用 Firestore Security 中的路径获取其父项,而无需指定字段?

如果可以,我将如何使用 node.js 进行查询(因为 Firebase 可以防止任何潜在的泄漏查询)?

提前致谢。

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-security


    【解决方案1】:

    试试这个:

    match /myRootCollection/{myRootDoc}/mySubCollection/{id} {
       allow write: if myRootDoc == "xxx";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2019-03-13
      • 2018-10-11
      • 1970-01-01
      • 2012-08-06
      • 2011-03-10
      • 1970-01-01
      相关资源
      最近更新 更多