Я кодирую сайт микроблогов на Firebase, к которому я очень новичок. Я храню информацию о пользователях (например, введение, изображения профиля) и сообщения, которые пользователи пишут, как показано ниже:
{
"posts" : {
"postid" : {
"category": "xx",
"content": "xx",
"uid":"xx"
}
},
"users" : {
"uid" : {
"intro" : "xx",
"nickname" : "xx",
"profile_picture" : "xx"
}
}
}
Я хотел бы сделать следующие правила:
Любой зарегистрированный пользователь сможет оставлять сообщения, но только после этого сможет редактировать свои собственные сообщения
Для информации о пользователях он сможет только публиковать / редактировать свои собственные сообщения.
Я установил правила безопасности базы данных, как показано ниже.
"users": {
".read": true,
"$uid": {
".write": "auth.uid===$uid"
},
},
"posts": {
".read": true,
".write": "auth!==null",
},
Вот несколько вопросов:
a. Это правило позволит любому плохому пользователю редактировать любой другой пост, который не принадлежит ему.
b. При попытке записи в узел пользователя в данный момент не существует дочернего узла UID, и пользователям не разрешено писать.
Как изменить правила базы данных, чтобы решить две проблемы? Я предпочитаю делать это без переписывания внешнего кода или изменения структуры базы данных ... хотелось бы получить совет здесь!