【问题标题】:Proper way to setup Firestore-database for friendlist-system为好友列表系统设置 Firestore 数据库的正确方法
【发布时间】:2020-04-18 21:32:45
【问题描述】:

我对 Android 开发非常陌生。目前我正在尝试开发我的第一个应用程序。我的应用程序将有一个朋友系统。我试图设置 Firestore 数据库以匹配我的条件。 我想使用google认证提供的UserID来控制对数据库的访问。

每个用户都有一个用户名好友列表,因为我认为让任何客户端知道另一个客户端的 UserID 是不安全的。

我的 Firestore 数据库如下所示:

  • “用户”(集合)

    • 用户 ID(文档)
      • 显示名称、用户名(字段)
  • “好友列表”

    • 用户 ID
      • 用户名1、用户名2、用户名3...

每次我想访问好友列表中的用户数据时,都必须使用 UserID 文档从用户集合中检索数据。由于不允许客户端知道朋友的 UserID,我需要另一个我计划通过云功能访问的集合来知道哪个 userID 属于用户名。

  • “用户名”(集合)
    • 用户名(文档)
      • 用户 ID(字段)

有没有更好的方法在保护数据库访问的同时最大限度地减少数据库读取?

【问题讨论】:

    标签: database firebase google-cloud-firestore


    【解决方案1】:

    您可以尝试根据来自this other thread 的答案作为起点的用户名文件查找用户ID(文档)。

    但是,您需要确保用户名不会重复,因为这可能会在以后通过对插入用户名更新的检查进行编程来导致问题。

    否则,您计划的解决方案将起作用,但需要注意的是,您将来可能会获得更高的费用,因为您需要为每次阅读付费,如提到的 here

    希望你觉得这很有用!

    【讨论】:

    • 谢谢。这很有帮助。我找不到有关 where 子句性能的任何信息。当我在搜索字段时有很多文档条目时,查询不会很长吗?这对我的应用程序来说并不重要,因为它只为一小部分人设计,但我仍然希望使用优化技术,就好像我会开发一个拥有大量用户的应用程序一样。
    • 根据数据集的大小,位置不会对您产生太大影响,即使这样,也有一些方法可以保持良好的性能。您可以查看this 博客了解更多相关信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多