繁体   English   中英

将Firebase Auth与Firebase实时数据库或Google Cloud Datastore结合在一起?

[英]Combining Firebase Auth with Firebase Realtime Database or Google Cloud Datastore?

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

使用基本的伪代码,一个书本对象将看起来像这样:

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

用户的note对象将如下所示:

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

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

在了解了可能性之后,我决定使用Firebase Auth (因为将来可能需要Android和iOS兼容性) + Google Cloud DatastoreFirebase Realtime Database 但是我对Firebase的实时数据库有些担心,因为我从未像这样工作过任何数据库。 我还希望能够使用PhpMyAdmin之类的工具手动修改记录,并且我认为Cloud Datastore具有这样的可视界面。

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

所以重要的事情是:

  • 一个数据库表应该能够轻松处理数百万条记录
  • 轻松查询
  • 数据库的可视界面(如果可能)
  • 我不需要实时功能,例如动态游戏成绩显示/保存

其他资讯:

  • 我想使用Angular.js
  • 我对Python熟悉,如果它可以帮助您

所以我的问题是哪个数据库更适合我的需求? 目前,我说的是数据存储,但是我对这些服务还是陌生的,因此我并不反对实时数据库,但是数据存储看起来更合适,因为它具有可视界面。 但是我也不确定如何将数据存储与Firebase一起使用。 如果有第三种选择,例如将用户保存的对象的实时数据库和数据存储的静态对象结合在一起,那么我也很想听听它。 我的总体目标是能够尽可能轻松地编写和查询数据库,并轻松地将其与Firebase身份验证一起使用。

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

如果您要使用Firebase,建议您使用Cloud Firestore,而不要使用Cloud Datastore或Firebase实时数据库。 您将获得实时数据库以及基于真实文档的JSON数据存储的好处。 缺点是您没有UI与数据进行交互。 数据存储区只有一个,但不如PHPMyAdmin强大。 而且由于这些是NoSQL数据存储,因此SQL支持非常有限。

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

对于Firestore控制台/ UI,请参阅https://firebase.google.com/docs/firestore/using-console 您在找那种东西吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM