#firebase #firebase-realtime-database #firebase-security
#firebase #firebase-realtime-database #firebase-безопасность
Вопрос:
Я новичок в базе данных firebase и хочу добавить правило, которое может запретить кому-либо записывать, если его данные не содержат определенного ключа.
мои правила базы данных firebase:
.
На этом изображении:
1-й ключ содержит только 1 дочерний ключ с именем «sample», а 2-й ключ содержит множество ключей, таких как дни, дата, пользователь, загрузки и т.д.
Возможно ли добавить правило, которое запрещает запись ПЕРВОГО ключа, если он не содержит дочернего ключа с именем «дата»?
Я надеюсь, что кто-нибудь мне поможет, спасибо!
Комментарии:
1. Для дальнейшего использования будет действительно полезно, если вы включите свою структуру данных в вопрос вместо ссылки. Наиболее полезно, если вы можете даже предоставить данные в виде кода для копирования / вставки в post.
2. @Dennis Alund, спасибо за совет, я сделаю это в следующий раз.
Ответ №1:
Да, вы определенно можете создать правило, которое проверяет наличие дочернего ключа.
И есть также языковой инструмент под названием Firebase Bolt, который может упростить написание ваших правил. Это очень помогает, когда вы хотите выполнить более сложные проверки ваших данных.
{
"rules": {
"posts": {
"$postId": {
".validate": "newData.hasChildren(['date'])"
}
}
}
}
Комментарии:
1. Здравствуйте, сэр, я действительно новичок в этом, и я не понимаю, что такое «$ postID», должен ли я просто оставить это так в правилах?
2. Ознакомьтесь с документацией о том, как писать правила безопасности.
3.
$postId
Является шаблоном. Это означает, что правила в соответствии с ним (поэтому.validate
здесь) применяются к каждому дочернему узлуposts
.4. Большое спасибо, ребята, за помощь, я благодарен.