firebase - firestore 的正确集合结构

标签 firebase google-cloud-firestore

因此应用有用户(Firebase 身份验证)

每个用户都有一些设置,然后是 json“东西”的集合。

我的想法是让每个用户成为他们自己的根集合,然后在其中有一个设置文档,以及数据集合。推理是,如果我必须删除某人及其数据,那么只需删除根目录及其中的所有内容即可?

我的思考方式正确吗?我不想花 2 年时间就需要重构,因为它难以管理。

最佳答案

如果您决定稍后管理索引,您可能会遇到死胡同,因为它们需要集合和文档字段的特定名称,并且您的集合将以用户的 UID 命名。

当我使用动态文档字段时,我遇到了类似的问题,因此我必须将它们包装到“myDynamicFields”字段中,并在我的索引中使用它。

// firestore.indexes.json
{
  "indexes": [],
  "fieldOverrides": [
    {
      "collectionGroup": "myCollection",
      "fieldPath": "myDynamicFields",
      "indexes": []
    }
  ]
}

就像我将动态字段包装在“ map ”字段中一样,您可以将设置包装在 userSettings 集合中,并为每个用户提供一个文档。对于“数据”来说也是如此:一个 userData 集合,以及每个用户的一个文档。然后,要删除用户,您必须删除两个文档。

关于firebase - firestore 的正确集合结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495377/

相关文章:

javascript - 在 firestore 中停止 onSnapshot 函数

database - 云 Firestore : Is compound range query in more than 2 fields available now?

URL 中的 Firebase 托管路径参数不起作用

firebase - Flutter:未捕获的 ReferenceError:firebase 未定义

java - 在不重新填充 RecyclerView 的情况下更新 ViewHolder

swift - 用户无权访问 gs ://xxxx. appspot.com/(null)

javascript - 如何保护 Firebase 数据库免遭黑客复制?

firebase - 在 initState 中初始化变量

swift - Firestore : create subcollection from iOS SDK

android - Tasks.whenAllSuccess 是否保证我将任务传递给它的顺序?