уникальная недвижимость в Firebase

У меня есть приложение для iOS, которое содержит категории. Мое хранилище в Firebase выглядит так:

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

Пользователь не должен добавлять категорию дважды. Я хочу сделать название категории уникальным. Можно ли это сделать в Firebase? Заранее спасибо.


person Mighty Codder    schedule 03.01.2017    source источник


Ответы (2)


Невозможно гарантировать уникальные значения в базе данных Firebase.

Но с другой стороны, ключи всегда уникальны в своем контексте.

Вы можете использовать это для моделирования ваших данных таким образом, чтобы гарантировать уникальность желаемого свойства. Допустим, вы хотите, чтобы название категории было уникальным, сохраните категории под их именем:

-Categories
  -name
    - color:
    - sum:

Благодаря такой структуре вы гарантированно получите уникальные названия категорий.

Если вы должны хранить категории под их текущими ключами, но при этом хотите гарантировать уникальные имена. Вы можете создать вторичный индекс, который использует имена категорий в качестве ключей для обеспечения их уникальности.

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

Этот последний подход дополнительно объясняется в ответе Като на Применение уникальных имен пользователей с помощью Firebase simplelogin

person Frank van Puffelen    schedule 03.01.2017

Вы должны проверить, существует ли уже такая же категория. Создайте поиск с конкретными значениями категорий (where clause), если уже существует категория со значениями, не добавляйте ее. Чтобы узнать, как найти конкретный результат с помощью firebase, вы можете проверить эту ссылку https://stackoverflow.com/a/14965065/2246798

person souvickcse    schedule 03.01.2017