【问题标题】:Combining Firebase Auth with Firebase Realtime Database or Google Cloud Datastore?将 Firebase 身份验证与 Firebase 实时数据库或 Google Cloud Datastore 结合使用?
【发布时间】:2018-05-18 03:57:01
【问题描述】:

我正在计划一个需要用户身份验证的 Web 应用程序,以及为存储在数据库中的用户显示数据的能力。 (还)不需要用户之间的交互,但是用户应该能够创建对象并查询他们“自己的”对象。例如,我列出了 10 个书名(10 个书对象),User A 应该能够选择一本书并创建一个新对象,称之为userNoteObject,其中包含所选书的名称和一个简短的注释(他/她写道)。

使用基本的伪代码,一本书对象将如下所示:

bookObj = {"id": 1, "name": "book name"}

用户的笔记对象会是这样的:

userNoteObject = {
             "id": 1, 
             "book_name": "random book name", 
             "owner_userid": "a1b2c3d", 
             "note": "some random string"
                  }

使用 MySQL,我将创建三个表,一个用于用户,一个用于userNoteObject-s,另一个用于bookObj-s。每次用户保存笔记时,我都会将其添加到列出已保存笔记的表格中。然后我可以简单地根据用户的owner_userid查询属于X用户的笔记。这是一个非常简单的功能。

在阅读了有关可能性后,我决定使用 Firebase Auth (因为将来我可能需要 Android 和 iOS 兼容性) + Google Cloud DatastoreFirebase 实时数据库。但是我对 Firebase 的 Realtime Database 有点害怕,因为我从未使用过类似的数据库。我还希望能够使用 PhpMyAdmin 之类的工具手动修改记录,并且我认为 Cloud Datastore 具有类似的可视化界面。

我熟悉 JSON 处理和创建 JSON 文件,但目前基于 JSON 的数据库对我来说很陌生。因此,我正在考虑,也许其他选择会是更好的选择。我不需要实时数据库功能,这一点非常重要。我会将 X 个条目加载到包含 bookObj-s 的表中,有时还会更新它们。我假设当用户创建userNoteObject 时,它会快速保存,删除userNoteObject 后,我可以使用 Datastore 接近实时刷新页面。但是保存书籍对象的表必须能够轻松存储数百万个条目。

那么重要的事情:

  • 一个 db 表应该能够轻松处理数百万条记录
  • 尽可能简单的查询
  • 数据库的可视化界面(如果可能的话)
  • 我不需要动态游戏分数显示/保存等实时功能

其他信息:

  • 我想使用 Angular.js
  • 我熟悉 Python,如果它可以提供帮助的话

所以我的问题是哪个数据库更适合我的需求?目前我说的是 Datastore,但我对这些服务完全陌生,所以我并不是真的反对实时数据库,但 Datastore 看起来更合适,因为它有一个可视化界面。但是,我也不确定 Datastore 如何与 Firebase 一起使用。如果有第三个选项,比如将两者结合起来,例如用于用户保存对象的实时数据库和用于 Datastore 的静态对象,我也很想听听。我的总体目标是能够尽可能轻松快速地编写和查询数据库,并轻松地将其与 Firebase auth 一起使用。

更新:我刚刚发现了 Firebase 的 Cloud Firestore,所以如果它更有用,我可以使用它。

【问题讨论】:

  • 如果您熟悉 SQL 并需要将这些知识映射到 NoSQL 数据库,请观看此视频系列。您需要学习如何以不同的方式对数据进行建模。 youtube.com/…

标签: firebase firebase-realtime-database google-cloud-datastore firebase-authentication


【解决方案1】:

如果您打算使用 Firebase,我建议您使用 Cloud Firestore,而不是 Cloud Datastore 或 Firebase 实时数据库。您将受益于实时数据库以及真正的基于文档的 JSON 数据存储。一个缺点是您没有与数据交互的 UI。 Datastore 有一个,但它不像 PHPMyAdmin 那样健壮。由于这些是 NoSQL 数据存储,因此对 SQL 的支持非常有限。

如果您真的想要一个真正的关系型后端,您可以尝试 Cloud SQL,它基本上是在 Google 服务器上运行的 MySQL。

【讨论】:

    【解决方案2】:

    有关 Firestore 控制台/UI,请参阅 https://firebase.google.com/docs/firestore/using-console。这就是你要找的东西吗?

    【讨论】:

    • 是的,我认为没问题。
    猜你喜欢
    • 2020-07-22
    • 1970-01-01
    • 2017-12-26
    • 2019-05-05
    • 2019-06-28
    • 1970-01-01
    • 2021-01-22
    • 2018-01-17
    • 2018-08-27
    相关资源
    最近更新 更多