保护firebase数据库中的位置以供一个或多个用户写入

时间:2017-07-14 01:45:05

标签: firebase firebase-realtime-database firebase-authentication

我正在使用firebase身份验证和实时数据库构建一个新应用程序。我了解如何在数据库中保护位置,以便只有特定的经过身份验证的用户才能写入该文档:

<script src="https://rawgit.com/mrdoob/three.js/r86/build/three.min.js"></script>

<script id="vertexShader" type="x-shader/x-vertex">
  varying vec2 vUv;
  void main() {
  vUv = uv;
    gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);
  }
</script>

<script id="fragmentShader" type="x-shader/x-fragment">
  uniform vec3 color1;
  uniform vec3 color2;
  varying vec2 vUv;
  void main() {
    gl_FragColor = vec4(mix(color1, color2, vUv.y),1.0);
  }
</script>

}

我想确保一个或多个用户的位置。我不确定这是否可行,如果可行,我将如何构建数据。数据是一个或多个用户可以更新的购物项列表,而所有其他用户可以查看购物项。所有用户都经过身份验证,但其中一个或多个用户被指定为购物者,因此可以添加和删除项目。

由于

克雷格

1 个答案:

答案 0 :(得分:0)

万一有人偶然发现这个问题,一个firebase论坛的成员能够回答这个问题,我最终得到了以下数据库规则:

{
  "rules": {
    "users": {
      ".read": "auth !== null",
      "$udser_id": {
        ".write": "$user_id === aith.uid"
      }
    },
    "shops": {
      "$shopID": {
        "items": {
          ".read": "auth != null",
          ".write": "data.parent().child('shoppers').child(auth.uid).exists()"
        },
        "shoppers": {
          ".read": "auth != null",
          ".write": "root.child('users').child(auth.uid).child('scheduler').val() == true || data.child(auth.uid).exists()"
        },
        "boxes": {
          ".read": "auth != null",
          ".write": "auth != null"
        }
      }
    }
  }
}

这是基于这里的一篇文章:https://firebase.googleblog.com/2016/10/group-security-in-firebase-database.html