使用通配符的Firebase安全规则

dab*_*248 3 firebase firebase-security firebase-authentication

我有这样的数据结构:

在此输入图像描述

如何/Restaurant/-KK37k6g5cYYippEHpZ3/User/-KK37k6g5cYYippEHpZ4/id在firebase安全规则中访问其值?两个按键应该是通配符.我需要这样的东西:

"Restaurant": {
        "$id": {
            ".read": "auth.uid != null",
            ".write": "data.child($id).child('User').child($anotherWildcard).child('id').val() === auth.uid"  
        }
    }
Run Code Online (Sandbox Code Playgroud)

ado*_*srs 5

不确定我是否完全明白你的要求,但这是我的想法.

您的规则中的第一个问题是您正在指定,child($id)但您已经在内部$id.你暗指的data是你所指的$id.

要解决您的主要问题,您将不需要另一个通配符.你可以用它hasChild来验证它是否在auth.uid里面restaurant/user.

"Restaurant": {
   "$id": {
      ".read": "auth.uid != null",
      ".write": "auth.uid != null && data.child('User').hasChild(auth.uid)"
   }
}
Run Code Online (Sandbox Code Playgroud)