SQL 中的 Firebase 数据库
Posted
技术标签:
【中文标题】SQL 中的 Firebase 数据库【英文标题】:Firebase Database in SQL 【发布时间】:2017-07-02 12:26:18 【问题描述】:我想知道是否可以将 Firebase 用作 SQL 数据库。我在 NoSQL 中遇到了关系问题。
例如:一个用户属于一个团队,一个团队有用户。
【问题讨论】:
IMO 你应该手动完成。将您的 Firebase 数据库导出为 JSON,然后编写一些代码以使用您的设计关系将其导入您的 SQL 数据库。 Firebase 中的 NoSQL 数据库旨在按原样检索和使用。如果您的大部分数据是关系数据,请使用关系数据库。但是,如果您的关系很少,就像您提到的那样,您将必须有一个用户节点和一个团队节点,其中每个用户都有一个团队节点,每个团队都有一个节点用户。每当发生更改时,您必须同时更新团队节点和用户节点。 如果要使用 SQL 数据库,请使用 SQL 数据库。有很多好的选择。如果您想使用 Firebase,请了解 NoSQL。为此推荐:NoSQL data modeling 和 Firebase for SQL developers。 【参考方案1】:无法以这种方式使用 Firebase。 Firebase 是一个实时对象存储。它不是 SQL 数据库,也不打算替代它。它完全缺乏 JOIN、WHERE 查询过滤器、外键和其他关系数据库都提供的工具等机制。这并不意味着它不是一个有价值的工具。但任何将其“视为”SQL 替代品的尝试都将失败。这不是它的目的。
【讨论】:
有一个类似外键的功能可用 - youtube.com/… 抱歉,没有。验证规则可以访问多个位置的键,但这些是严格的服务器端的,不是外键。这不是对产品的批评。承认尝试使用这些 SQL 领域假设来构建应用程序是无效的。 Firebase 是不同的。需要按照设计的方式使用它才能获得所有好处。 引用视频 - “你可以创建类似结构的外键”youtu.be/… - 我要远离 firebase 并推出一个 sqlite db / 只是保持同步. 我很确定 Firebase 包含“WHERE”查询过滤器。一些基本示例似乎使用它。 “它完全缺乏诸如 JOIN、WHERE 查询过滤器、外键和其他工具之类的机制”我不明白如果是这种情况,为什么还要存在 firebase。但是 startAt 和 endAt 不给你类似的控制权吗?【参考方案2】:我想你需要的是supabase。
它使用 开源 Postgres 数据库,他们正试图成为一个 firebase 替代品。
它由 YCombinator 提供支持,但截至 2021 年 2 月仍处于测试阶段。
【讨论】:
以上是关于SQL 中的 Firebase 数据库的主要内容,如果未能解决你的问题,请参考以下文章