我有一个如下所示的云功能:
exports.myFunction = functions.database.ref('/node/{id}').onDelete((snap, context) => {
return admin.database().ref(`/aDifferentNode/${context.params.id}/someProperty`).set(false);
});
但是现在我的项目中将有多个数据库。我的理解是,以上代码仅适用于主数据库实例,但我需要将其以相同的方式应用于所有这些实例。我不想硬编码我拥有的数据库的名称,因为相同的代码将部署在多个项目中。
是否有一种方法可以让functions.database
在多个数据库中运行并从context
或类似的东西中获取当前数据库?还是失败了,有没有办法获取项目中所有数据库的列表,以便我可以以编程方式创建多个函数?
答案 0 :(得分:1)
当前没有API列出将在Cloud Functions中工作的数据库碎片。也没有办法简单地说一个函数应该响应所有实例。您必须提前知道所有分片的名称,以及bake them into your deployed functions。您 所要做的就是,如果它们都具有需要相同触发器的相同模式,则只需将相同的函数附加到它们中的每一个。但是不可避免地要为每个分片注册一个函数。