如何知道“ newData”中存在的数据已从“ data”中的值更改为什么

时间:2018-10-31 06:47:20

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

我在我的应用程序中使用firebase数据库。我的应用程序是一个具有挑战性的应用程序,用户在彼此之间输入挑战。在我的安全规则中,我仅允许用户根据用户点从该数据中编辑自己的数据库中的数据。我有一个问题是,当两个用户在挑战中被吸引时,他们两个都应增加一个点,因此如果他对当前用户开放,则我需要允许firstUser(player)编辑这些点,或者至少允许用户编辑他的数据但使其他用户能够改变他的观点。我该如何实现?

这是我对用户子规则:

"users":{
  //".write":"auth.uid == \"DFhNb28506Y345CpJ3Ye7DQNn713\" || ((newData.exists() && data.child(\"userEmail\").val() != null) || auth.token.email == data.child(\"userEmail\").val())",
  ".read": "auth != null",

  "$userId": {
   // ".write": "auth != null"
    ".write": "(!data.exists() && newData.exists() && auth != null) || auth.token.email == data.child(\"userEmail\").val() || auth.uid == \"DFhNb28506Y345CpJ3Ye7DQNn713\""
    //".validate": "newData.hasChildren(['title', 'author', 'timestamp'])",

}

数据库结构如下:

root
    -usrers
          -usrer1
                   -userName, points....
          -user2
                -userName, points....
      -.......

我要允许什么?我想允许用户将其数据的所有子级都编辑为userName,points等。并允许所有用户仅编辑任何用户的点。

0 个答案:

没有答案