2016-12-13 2 views
0

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

Когда пользователь регистрирует учетную запись на моем брандмауэре Firebase, им будет предложено ввести информацию о своем «профиле 1». Имя, возраст, контактная информация и изображение будут загружены в этот профиль.

Затем они могут создать дополнительный профиль, состоящий из точно таких же данных: имя, возраст и т. Д. Они могут продолжать создавать дополнительные профили.

Так что я пытаюсь выяснить, как организовать мою базу данных для поддержки такого рода структуры. Один пользователь, несколько «наборов» данных/профилей. Итак, когда они откроют приложение позже, когда у них будет несколько профилей, они смогут выбрать, какой из них загрузить. Следовательно, необходим какой-то механизм, сообщающий базе данных загрузить этот конкретный набор/профиль данных.

Надеюсь, я сделал некоторые из этого. Сложнее объяснить, чем я думал. Спасибо заранее!

+0

Один вопрос; когда вы говорите дополнительный профиль, содержащий точно такие же данные, какова будет функция дублированных данных? Если это точно то же самое, вам действительно нужно будет хранить его только один раз. Возможно, вы имеете в виду, что он дублирует данные, которые затем могут быть изменены? – Jay

ответ

1

Как об этом

users 
    uid_0 
    defaultProfile: "-YN9998ijssios" 
    profiles 
     -Yhnaiosioajsd 
      profileName: "profile 1" 
      name: "Bill" 
      age: "102" 
      contactInfo: "[email protected]" 
     -YN9998ijssios 
      profileName: "profile 2" 
      name: "Bill" 
      age: "102" 
      contactInfo: "[email protected]" 
     -YP989jsmskooo 
      profileName: "profile 3" 
      name: "Bill" 
      age: "102" 
      contactInfo: "[email protected]" 

Можно также разделить профили в отдельный узел, который будет сглаживать данные (хорошая вещь), но оно не может быть необходимым, так как это один ко многим отношений, пользователь к их профилям.

Когда вы наблюдаете за пользовательским узлом, чтобы загрузить его, возьмите значение, хранящееся в дочернем узле defaultProfile, и выберите его из загружаемого моментального снимка (словаря). Этот код представляет собой просто базовое наблюдение (чтение) узла ,

Мой ответ

This Question

почти точно такой же шаблон кода (Swift), если вам нужно несколько примеров.

+0

Это выглядит очень логично. Но «uid_0», я думаю, это идентификатор пользователя. И я вижу, что «профили» будут дочерним, который содержит предстоящий профиль-дочерний экран. Но что такое defaultProfile ... xx, предположим, что он/функционирует как? – Benni

+0

@Benni Допустим, что в файле defaultProfile будет указан один из профилей по умолчанию. Если у пользователя 10 профилей, то один из них будет «основным» профилем, который он будет использовать. Если пользователь решает использовать другой профиль в качестве основного, сохраните этот ключ как значение defaultProfile. Он не был включен в ваш вопрос, но я добавил его, если вы хотите использовать что-то в этом направлении. И да, uid будет идентификатором пользователей, который является типичным шаблоном дизайна в Firebase. – Jay

Смежные вопросы