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