Расширение дочерних узлов Firebase с подстановочным знаком?

Я использую расширение limit дочерних узлов, чтобы успешно ограничить узел до 3 дочерних узлов с такой структурой:

{
  "-LqRtMWFDSO3QRJDYA39" : {
    "r" : 0.84,
    "s" : "Mango"
  },
  "-LshaeOZsIRC80q_n4Kl" : {
    "r" : 0.49,
    "s" : "Strawberry"
  },
  "-Ltf2gql89DkVm--xLr3" : {
    "r" : 0.44,
    "s" : "Cheese"
  }
}

Можно ли использовать расширение с такой структурой:

{
  "34DAvOOUO7N7vp28NtkdAAZp5vD3" : {
    "-Lshag6VI55LMps7Fe0G" : {
      "post" : true,
      "t" : "Brando"
    }
  },
  "35DDKxWrc8c1yERPf2QAYvRPAUb2" : {
    "-LocHP4oF6NzmS67yW8r" : {
      "post" : true,
      "t" : "Abby"
    },
    "-LscHPsdF6NzmE47sdD3r" : {
      "post" : true,
      "t" : "Abby "
    }
  }
}

Мне нужно ограничить уведомления пользователей только 15 узлами, но, не зная второго дочернего элемента при указании пути, я не могу сделать это без чего-то похожего на параметр подстановочного знака облачной функции.

Я ценю помощь, ура!

1 ответ

Решение

Да, ты можешь это сделать.

Поскольку это расширение, по сути, является просто облачной функцией, вы можете использовать формат подстановочных знаков вNODE_PATH параметр (на самом деле, просто переменная среды, с которой настроена облачная функция, а также ее конфигурация триггера).

Допустим, все эти элементы находятся в узле верхнего уровня, "уведомления".

Затем вы можете установить параметр следующим образом:

notifications/{topId}

Что создаст функцию расширения как RTDB onCreate запуск метода в:

notifications/{topId}/{messageid}

И таким образом очистите набор уведомлений на 2 уровня.