【问题标题】:Firebase Using Unique IDs with Flattened DataFirebase 使用带有扁平数据的唯一 ID
【发布时间】:2024-01-11 21:11:02
【问题描述】:

我正在尝试扁平化我的 Firebase 应用中的数据。数据库设计有一个用户列表和一个项目列表。用户将拥有项目,并且需要拥有他们拥有的项目的索引列表。用户列表由唯一的 uid 索引。对于这些项目,我正在使用具有唯一 ID 的项目列表。这些项目使用 firebaseArray 进行管理,并使用 $add 创建。我正在尝试使用结构化数据部分指南中说明的扁平数据模型。问题是 $add 生成的唯一 ID 中包含特殊字符,不能用作用户对象中项目的索引。尝试创建其中一个成员包含“特殊字符”的对象时会产生错误。

解决此问题的推荐方法是什么?

【问题讨论】:

  • 我已将用户 ID 添加到项目中并尝试创建查询以仅获取当前用户拥有的项目:
  • var projectsRef: Firebase = new Firebase('flickering-torch-2606.firebaseio.com/projects'); // 为当前用户拥有的项目创建查询 var query: any = projectsRef.orderByChild('userId').equalTo(this.userId);
  • 在 projectsRef 中找不到 'userId'。
  • 这里的问题是this.userId,而不是'userId'。所以这似乎有效。
  • 能否请您提供代码和数据结构示例?见creating an mcve

标签: firebase angularfire unique-id


【解决方案1】:

对于我的应用,我在项目中使用了 orderBy 和 equalTo 以及 userId。这似乎工作得很好。 OrderBy 似乎是一个奇怪的术语。它更像是一个选择。

【讨论】:

    【解决方案2】:

    我在 angularfire 之上编写了一个小模型层,它基本上处理(大部分)非规范化数据模型带来的痛苦,你可能想看看它angularfire-resource

    PS : 我仍在努力,所以在生产中使用它有点早,但我开始对此很满意,它可能会给你一些想法

    【讨论】:

      最近更新 更多