【问题标题】:Is it wise to only use Firebase as database?仅使用 Firebase 作为数据库是否明智?
【发布时间】:2020-10-22 08:25:28
【问题描述】:

我来自 SQL 背景,所以 Firebase 对我来说是一个很大的转变。 我最近的项目要求我考虑仅将 Firebase 用于数据和文件存储。

该项目是一个社交消息应用程序,已拥有多达 10 万注册用户。

我担心的是,Firebase 能否完全替代 SQL? 我发现有问题的功能:

  1. 针对特定关键字过滤数百万条消息(语言审核)
  2. 允许用户互相屏蔽(双向都应该立即生效)
  3. 从不需要的设备远程注销用户
  4. 监控每日统计信息(有多少赞、消息、用户在哪一天出现)
  5. 按各种属性(姓名、距离、性别、年龄)过滤用户

我想避免在 2 年后出现这样的情况,即发送了 5000 万条消息,突然需要设置不良语言过滤器。现在怎么办。

我会在 SQL 中运行

delete from messages where content like "%bad-word%"

5 分钟后,完成。

所以我的问题是,Firebase 可以完全替代 SQL 吗?

【问题讨论】:

    标签: firebase


    【解决方案1】:

    不,到目前为止,firebase 还不能完全替代 SQL。 但是对于您在将 Firebase 与第三方系统或自定义实现一起使用时提到的问题,有一些解决方案。

    在为您的解决方案考虑使用 firebase 代替 SQL 之前,您应该考虑它是 noSQL,并且具有完全不同的范式。有很多用例很容易用 noSQL 实现,所以这取决于场景。 Firebase 更适合实时场景。

    1. Firebase(Real Time DB 或 Firestore)目前还没有全文搜索功能。您将不得不使用AlgoliaElasticSearch 或执行一些类似于this 的自定义实现(以及一些其他在线文章)。

    2. 如果阻止用户只是意味着在一张表中添加一个条目,告诉用户 X 阻止了用户 Y,那么 firebase 可以通过实时执行来做到这一点。

    3. 我们可以使用 admin sdk 远程注销用户,例如this

    4. 不支持。您必须为要获取的每个统计信息维护一个计数键,否则您将必须获取所有(或部分)数据并在客户端进行计数。

    5. 您可以查询多个因素的记录。作为参考,请查看 firebase firestore queries

    如果您有任何问题,请告诉我。

    【讨论】:

    • 谢谢,我担心 Firebase 到今​​天还不是 SQL 的合适替代品。 Firestore 查询是否可扩展?这样的查询在收集数百万个文档时会一样快吗?
    • Firebase Firestore 声称支持 GB 和 TB 的数据集进行读取操作,这与 Firebase 实时数据库不同。你可以参考这个链接:firebase.google.com/docs/database/rtdb-vs-firestore
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    相关资源
    最近更新 更多