Слушатель значения события на родителе с правилом чтения у детей - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь создать базу данных, в которой есть сообщения, опубликованные пользователем, и только лица, подписанные на этого человека, могут видеть это сообщение. проблема здесь в том, что я добавляю прослушиватель событий на родительский узел в надежде, что он возвращает дочерние узлы, которые применяются только к правилу чтения, написанному внутри дочерних узлов, я знаю о разделе «Правила не являются фильтрами» в документации по fire- и я не могу достичь хорошего дизайна с эффективным использованием времени и памяти, когда я получаю только те сообщения, которые соответствуют моим правилам. Это моя база данных

{
  "Users" : { // ids of users using the app
    "6Ya6nxqRy1fKt4BUOOh1brCJzvi2" : true,
    "Nxmo8Wlhlcg4GDvh7ZIAnmBbpS82" : true,
  },
  "followers" : {
    "6Ya6nxqRy1fKt4BUOOh1brCJzvi2" : { //followers to the user with this id 
      "Nxmo8Wlhlcg4GDvh7ZIAnmBbpS82" : false,
      "n9jTaFVPDNh6bJSSZZCT20UFA972" : true
    },
    "Nxmo8Wlhlcg4GDvh7ZIAnmBbpS82" : {
      "6Ya6nxqRy1fKt4BUOOh1brCJzvi2" : true,
      "n9jTaFVPDNh6bJSSZZCT20UFA972" : true
    }
  },
  "posts" : {
    "-M3YxODIv6frqFyGM4Nm" : { //post with a random generated Id
      "img" : "cd4aaff5-cab9-44d6-b7d9-7587ed2f19fc",
      "post" : "See this cool character !!",
      "user" : "Nxmo8Wlhlcg4GDvh7ZIAnmBbpS82"
    }
  }
}

}, и это то, что я хочу применить

 {
 "rules": {
        ".write": true ,
        "posts":{
         "$pid":{
             ".read": "data.child('user').val()===auth.uid ||root.child('followers').child(auth.uid).child(data.child('user').val()).val()=== true "
           }
        },
        "followers":{
              ".read": true
        },
        "Users":{    
              ".read": true,
        }
     }
 }

проблема возникает, когда я хочу добавить прослушиватель событий на узле "posts", но так как он этого не делает прочитал: true, поэтому ничего не возвращается.

единственное решение, о котором я мог подумать, - это создать другое дерево на том же уровне сообщений, которое будет содержать имена всех сообщений, а затем я начинаю делать прослушиватель одного события включенным. каждый почтовый узел (от дочернего (посты) до дочернего (посты + пост [i]))

Есть ли лучший вариант, потому что в случае 100 постов я сделаю 100 отдельных событий, о которых я думаю, что время , память и Inte rnet ненужное потребление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...