【问题标题】:How can I make relational database in firebase?如何在firebase中制作关系数据库?
【发布时间】:2017-06-13 14:20:40
【问题描述】:

我正在从事非常大规模的项目。最后,由于用户友好和简单,我选择了 Android 和 Firebase。我将有多个孩子,如下所示:

products
 1
 name: 
"p1"
 2
 name: 
"p2"


 route
 1: 
"xyz"
 2: 
"abx"

这是一个用户案例: 如果用户更新路线 1 并输入“john”而不是“xyz”,则名称 1 应更新为“x1”而不是“p1”。

其中一种方法是通过 android 以编程方式使用“ondatachange()”之类的方法,但我想在服务器端进行。我不想每次路由“x”更新产品“a”应该在android应用中更新时写。

我们如何在 firebase 上构建关系数据库?

请记住,不会只有两个表,而是会有 50 多个键值对。

【问题讨论】:

  • 会有多个数据库,还是一个数据库中有多个子数据库?实时数据库不适合您所描述的内容,但它仍然是可能的。我只是想在给出建议之前澄清一下。
  • 对不起我的错字!它的“孩子”不是数据库。 'app-name' 数据库将有多个子级及其多个子级。

标签: android firebase firebase-realtime-database relational-database


【解决方案1】:

我同意您不想在客户端完成所有这些工作! Firebase 的 Cloud Functions 是一个不错的选择。您可以在写入数据库中的路径时触发函数,然后对其他相关路径进行更改。查看这些资源以了解更多信息:

Getting Started with Cloud Functions for Firebase

GitHub samples

Cloud Functions for Firebase documentation

Writing a Database Trigger

Writing a Cloud Storage Trigger: Part 1

Writing a Cloud Storage Trigger: Part 2

【讨论】:

  • Jen,感谢您和 Firebase 团队的其他成员提供如此精彩的视频!我可能还会链接到这个系列:youtube.com/…,重点是非规范化和使用云函数传播更新。
  • 非常感谢仁!我一定会与我的开发团队讨论并回复您!希望你能支持我的问题!
  • 没问题,约翰!如果您对此有任何其他问题,请告诉我。
【解决方案2】:

您可以使用 firebase admin sdk 或 firebase 函数来监听更改。 代码将如下所示:

exports.routeUpdated = functions.database.ref("route/{id}").onWrite(event => {
    // read the event value/s you need
    const id = // id of the product you want to update
    let updates = {};
    //set updates like updates['/name'] = ...
    admin.database().ref('products/' + id).update(updates).then(() => {
        //...
    }); });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多