Firebase使用通配符限制子节点扩展?

时间:2019-11-17 22:34:18

标签: node.js firebase firebase-realtime-database google-cloud-functions firebase-extensions

我正在使用limit child nodes extension将一个节点成功地限制为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 个答案:

答案 0 :(得分:1)

是的,您可以这样做。

由于此扩展名实际上是just a cloud function,因此您实际上可以在NODE_PATH参数中使用通配符格式(实际上,只是配置了云功能的环境变量,以及其触发配置)。

可以说所有这些项目都在顶级节点“通知”中。

然后您可以将参数设置为:

notifications/{topId}

将扩展程序的功能创建为在以下位置触发的RTDB onCreate方法:

notifications/{topId}/{messageid}

从而清理2级通知集。