У меня есть таблица в базе данных firebase, которая называется «Обсуждения», и она показывает некоторые сообщения, созданные пользователями.
Я хотел бы создать правило на уровне базы данных, поэтому он не будет отображать сообщения, еслиучетная запись пользователя была удалена.
Пример узла выглядит следующим образом:
"Discussions" : {
"36" : {
"-Ldjrrzfo5K94KT2tjBM" : {
"content" : "text",
"from" : "lOkhKOJBNEZuvXt2Zgzz5tUr4ft2",
"time" : 1556655079442
}
Для этого я попробовал следующее правило:
"Discussions" : {
"$lan_id": {
".write": "auth != null",
"$node_id" : {
".read": "root.child('Users').child(root.child('Discussions').child($lan_id).child($node_id).child('from').val()).child('deleted').val() != true",
".validate": "newData.child('time').isNumber() && newData.child('from').isString() && newData.child('content').isString()"
}
}
}
Это примерудаленный пользователь:
"Users" : {
"lOkhKOJBNEZuvXt2Zgzz5tUr4ft2" : {
"aboutme" : "AAADEFAULT",
"birthdate" : "01.01.1970",
"city" : "Deleted",
"deleted" : true,
"image" : "default",
"name" : "Deleted Account",
"online" : 0,
"register_date" : 0,
"sex" : 1,
"thumb_image" : "default",
"whyhere" : "AAADEFAULT"
}
Но это не сработает, потому что, если я добавлю правило «чтения» в «$ node_id», оно не будет показывать никаких записей, даже если я установлю прямо так:
"$node_id" : {
".read": true
}
Но мне также нужно получить доступ к "$ node_id", чтобы сделать то, что я хочу сделать.
Есть ли способ создать такое правило?