Как узнать, какие данные существуют в «newData», что изменилось по сравнению со значением в «data» - PullRequest
0 голосов
/ 31 октября 2018

Я использую базу данных Firebase в своем приложении. Мое приложение - это сложное приложение, в котором пользователи сталкиваются друг с другом. В моих правилах безопасности я разрешаю только пользователю редактировать свои данные в базе данных, исходя из этих данных пользователя. У меня есть проблема, которая заключается в том, что, когда два пользователя участвуют в соревновании, оба они должны увеличить одну точку, поэтому мне нужно разрешить firstUser (игроку) редактировать точки, если он открыт текущему пользователю или, по крайней мере, разрешить только пользователь может редактировать свои данные, но позволяет другим пользователям изменять свою точку зрения. Как мне этого добиться?

Это мои правила пользователя child:

"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, точки, .... и т. и разрешить всем пользователям редактировать только точки любого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...