Firebase 中的独特属性

Posted

技术标签:

【中文标题】Firebase 中的独特属性【英文标题】:unique property in Firebase 【发布时间】:2017-05-17 13:27:00 【问题描述】:

我有一个包含类别的 ios 应用程序。我在 Firebase 上的存储如下所示:

-root
   -Categories
      -key
        - color:
        - name:
        - sum:
   -Expenses
      -key
        -amount: 
        -category: 
        -date: 
        -description: 
        -initiator: 
        -name: 

用户不得两次添加类别。我想让类别名称独一无二。可以在 Firebase 中进行吗? 提前致谢。

【问题讨论】:

【参考方案1】:

无法确保 Firebase 数据库中的唯一值

但另一方面,键在其上下文中始终是唯一的

您可以利用它来对数据进行建模,以保证所需属性的唯一性。假设您希望类别名称是唯一的,请将类别存储在其名称下:

-Categories
  -name
    - color:
    - sum:

使用这种结构,您可以保证拥有唯一的类别名称。

如果您必须将类别存储在其当前键下,但仍希望确保名称唯一。您可以创建一个二级索引,它使用类别名称作为键来确保它们的唯一性。

-Categories
  -key
    - color:
    - name:
    - sum:
-CategoryNames
  -name: key

加藤对Enforcing unique usernames with Firebase simplelogin的回答中进一步解释了后一种方法

【讨论】:

【参考方案2】:

您必须检查是否已经存在相同的类别。如果已经存在具有特定类别值的类别 (where clause),请不要添加它。关于如何使用 firebase 搜索特定结果,您可以查看此链接 https://***.com/a/14965065/2246798

【讨论】:

以上是关于Firebase 中的独特属性的主要内容,如果未能解决你的问题,请参考以下文章

如何计算Firebase中的MAU?我需要BigQuery吗?

访问另一个项目中的 firebase 函数环境变量

在 Firebase 侦听器中设置 Singleton 属性值

Android中的Firebase数据描述排序

“typeof firebase”类型不存在属性“default”。错误

有没有办法使用 SwiftUI 和 Firebase 动态地在属性初始化程序中的实例中赋予初始值?