2016-03-11 2 views
0

У меня есть общее представление о том, как создавать и извлекать данные с помощью Firebase. Тем не менее, я не на 100% уверен, что это лучший способ обратиться к другим пользователям. На их сайте, есть пример сохранения пользовательских данных, что приводит к JSon дереву, как это:Структура данных JSON/Firebase

{ "users": { "alanisawesome": { "date_of_birth": "June 23, 1912", "full_name": "Alan Turing" }, "gracehop": { "date_of_birth": "December 9, 1906", "full_name": "Grace Hopper" } } }

Что меня смущает является «alanisawesome» и «gracehop» ссылка. Сначала я думал, что я должен заменить их с уникальными идентификаторами, созданных при создании пользователя, например:

"users": { "12349WEF": { "date_of_birth": "June 23, 1912", "full_name": "Alan Turing" }

Но потом я наткнулся на еще один пример JSON дерева, который имел UID под глубиной как другие личные как их имя, адрес электронной почты и т. д. (Неясно, каков был родитель персональных данных). Также из документов Firebase есть метод childByAutoId, который генерирует идентификатор с меткой времени. Если это не то, что я использую для создания пользователей, какова была бы правильная настройка для ссылки на данного пользователя и доступа к его или ее информации?

ответ

1

Что меня смущает, это ссылки «alanisawesome» и «gracehop». Сначала я думал, что я должен заменить их с уникальными идентификаторами, созданных при выполнении пользователю

Наиболее распространенный способ хранения информации о пользователях в Firebase база данных должна иметь структуру, как:

/users 
    $uid 
     full_name: "Alan Turing" 
     date_of_birth: "June 23, 1912" 

Где Я использую $uid в приведенном выше фрагменте, вы должны использовать uid, который Firebase Authentication генерирует для вас. Это длинная непрозрачная строка. Например, "e836f712-4914-41df-aa80-5ade6b8b7874". Поскольку это не очень читаемо, документация Firebase имеет тенденцию использовать «поддельные» uids, такие как "alanisawesome" и "gracehop" в приведенном примере. Для получения дополнительной информации см. storing user data section in the Firebase documentation. Имейте в виду, что все это всего лишь (часто используемое) соглашение. Вам нужно будет выяснить, работает ли он для ваших случаев использования и при необходимости адаптирует его.

Также из документов Firebase является метод childByAutoId, который генерирует идентификатор с меткой времени. Если это не то, что я использую для создания пользователей, какова была бы правильная настройка для ссылки на данного пользователя и доступа к его или ее информации?

Если предметы имеют натуральный ключ, обычно их хранить под этим ключом. Пользователи идентифицируются по их идентификатору пользователя (uid в API Firebase) и поэтому обычно хранятся под этим идентификатором в базе данных. Если вам нужно также искать пользователей по одному из своих других свойств, вы должны создать так называемый индекс, который отображает другое свойство в естественный/первичный ключ. То есть

/usernames 
    "Alan Turing": "alanisawesome" 
    "Grace Hopper": "gracehop" 

Вы заметите, что еще раз я использую «поддельные» uids в этом примере для повышения удобочитаемости.

+0

Я надеялся, что это будет так. Теперь это имеет больше смысла, спасибо! – andrew

+0

Мне ответ был полезен, нажмите кнопку вверху слева от него. Если он ответил на ваш вопрос, нажмите галочку, чтобы принять его. Таким образом, другие знают, что вам (в достаточной мере) помогли. –

+0

Простите, только что проверил! – andrew

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