Я хочу ограничить количество моих не премиум-пользователей только одной публикацией в день.Премиум-пользователи не имеют ограничений.Мне неясно, как настроить правила моей базы данных.На данный момент я могу только добавлять в базу данных только проверенных пользователей. примечание Я хочу написать в узел AddPost
Моя база данных Json выглядит следующим образом:
User :
uid:
verified : true
premium : false
И мои правила:
{
"rules": {
"AddPost": {
".read": "auth != null",
".write":
"root.child('Users').child(auth.uid).child('verified').val() == true"
}
,"Users": {
".read": "auth != null",
".write": "auth != null"
}
,"FavoritedBusinesses": {
".read": "auth != null",
".write": "auth != null"
}
,"Geolocs": {
".read": "auth != null",
".write": "auth != null"
}
,"ReviewPost": {
".read": "auth != null",
".write": "auth != null"
}
,"Views": {
".read": "auth != null",
".write": "auth != null"
}
}
}
МОЕ РЕШЕНИЕ Итак, используя руководство Фрэнкса, я смог объединить некоторые правила.В качестве базового правила каждый пользователь должен быть проверен, поэтому я помещаю это в условие «validate» как его общий знаменатель. Затем в первой записи мы проверяем, является ли пользователь премиальным, если он возвращает false, тогда мы проверяем последнее.отметка времени от той, которую мы сохранили в последнем посте.Тем не менее, если первое условие не выполняется, это означает, что пользователь имеет премию и ему должно быть разрешено публиковать ..
новые правила базы данных
".write": "root.child('Users').child(auth.uid).child('premium').val()
=== false && (newData.parent().child('Users').child(auth.uid).child('lastPostStamp').val() === now) && (newData.parent().child('Users').child(auth.uid).child('lastPostStamp').val() > root.child('Users').child(auth.uid).child('lastPostStamp').val() + 24*60*60*1000) || root.child('Users').child(auth.uid).child('premium').val() === true ",
".validate": "root.child('Users').child(auth.uid).child('verified').val() === true"