Как установить правила безопасности в Firebase Realtime Database для конкретных параметров
В приложении используется Firebase Realtime Database. JSON выглядит примерно так:
"records": {
"userId1": {
"recordId1": {
"playingCount": 11,
"likeCount": 10,
.
.
.
"recordId2": {
"playingCount": 11,
"likeCount": 10,
.
.
.
"userId2": {
"recordId1": {
"playingCount": 11,
"likeCount": 10,
.
.
.
Одна из главных веток называется records, там записаны данные о записях пользователях по следующей логике records - userId - recordId. В recordId есть разные параметры, в том числе playingCount и likeCount. Мне нужно прописать так правила безопасности, чтобы изменять (то есть 'write') мог любой пользователь именно этих 2х параметров, а остальные не мог.
Пример: пользователь прослушивает запись друго пользователя и добавляет + 1 к счетчику прослушивания записи или ставит лайк и этот параметр тоже меняется в чужой записи.
Сейчас мои правила безопасности выглядят так:
"records" : {
"$uid" : {
".read": "auth != null",
".write": "auth != null && auth.uid == $uid",
}
},
но это не позволяет менять эти 2 параметра пользователю в ветке чужой записи. Как мне прописать такие правила?
PS: разобрался как добавить правила для 1 параметра, но как туда вкруть второй пока не понятно (параллельно с "$playingCount" поставить такой же "$likeCount" не получается)
{
"rules": {
".read": "auth != null",
"records": {
".read": "auth != null",
"$uid": {
".write": "auth != null && auth.uid == $uid",
"$recordId": {
"playingCount": {
".write": "auth != null",
}
}
}
}
}
}