2017-01-03 69 views
0

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

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

用户不得两次添加类别。我想让类别名称独一无二。 Firebase中可以做什么? 在此先感谢。

回答

0

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

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

您可以利用这种方式为您的数据建模,以确保您希望的属性的唯一性。你说你想要的类别名称是唯一的,存储在他们的名字类别:

-Categories 
    -name 
    - color: 
    - sum: 

采用这种结构,保证能让你有独特的类别名称。

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

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

后一种方法是进一步加藤的回答Enforcing unique usernames with Firebase simplelogin

解释
0

你必须检查,如果相同的类别已经存在或没有。如果已经有一个值不添加的类别,则创建一个包含特定类别值(where clause)的搜索。有关如何使用Firebase搜索特定结果,请查看此链接https://stackoverflow.com/a/14965065/2246798