Node.js Firebase实时数据库创建模拟多租户设计的方法
我们已经构建了一个分析应用程序,它将为我们的客户捕获数据。其想法是为每个客户在firebase db中创建一个节点,并将其捕获的所有数据都放在该节点中 这个想法对于实时数据库非常有效,因为我们可以在客户端的所有firebase DB操作中预先输入客户名称 问题在于firebase函数。例如,其中一个函数如下所示:Node.js Firebase实时数据库创建模拟多租户设计的方法,node.js,firebase,firebase-realtime-database,google-cloud-functions,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,我们已经构建了一个分析应用程序,它将为我们的客户捕获数据。其想法是为每个客户在firebase db中创建一个节点,并将其捕获的所有数据都放在该节点中 这个想法对于实时数据库非常有效,因为我们可以在客户端的所有firebase DB操作中预先输入客户名称 问题在于firebase函数。例如,其中一个函数如下所示: exports.on_new_message = functions.database.ref(orgName + "/messages/{id}") .onCreate(a
exports.on_new_message = functions.database.ref(orgName + "/messages/{id}")
.onCreate(async(snapshot, context) => {
console.log("start of on_new_message ")
const message = snapshot.val();
})
在这种情况下,orgName此时是硬编码的。我们不确定如何以一种不需要指定根节点的方式来概括它。对于快速引用,数据可能如下所示
orgA
--messages
---
---
--stats
--
--
orgB
--messages
---
---
--stats
--
--
如果上述架构听起来很愚蠢,那么请建议正确的方法您可以在路径中使用多个通配符,请参阅 所以你可以
exports.on_new_message = functions.database.ref("{orgName}/messages/{id}")
.onCreate(async(snapshot, context) => {
console.log("start of on_new_message ");
const message = snapshot.val();
const orgName = context.params.orgName;
const messageId = context.params.id;
//....
})
你能给出更多的细节(也许是一个具体的例子)关于你想要触发你的云功能的路径吗?所以路径应该是orgA/客户orgA的消息和orgB/客户orgB的消息。这有用吗?是的,更清楚,谢谢。你的问题是什么?我的意思是你为什么不直接做
functions.database.ref(“{orgId}/messages/{id}”)
?我想这可能行得通,但不确定,我们没有足够的开发来测试它。那么我如何在这些动态节点上定义索引呢?@moblizet我建议你问一个新的so问题。