Firebase中的独特属性

时间:2017-01-03 12:40:02

标签: ios firebase firebase-realtime-database unique-constraint

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

-Categories
  -name
    - color:
    - sum:

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

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

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

后一种方法在Kato对Enforcing unique usernames with Firebase simplelogin

的回答中进一步解释