2017-01-03 68 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