2016-07-11 3 views
1

В настоящее время я использую Firebase для хранения данных моих пользователей. Это не приложение для социальных сетей, но мы хотим иметь небольшое прикосновение к социальным сетям в нашем приложении, например, добавлять друзей и следить за тем, что они делают.
Моя текущая структура базы данных Firebase использует UID (полученную из Firebase Auth) в качестве ключа к данным пользователя. Рассмотрим следующую структуру разъяснений -Использование UID против имен пользователей при хранении данных пользователя

-> users 
    -> UID 
     -> name 
     -> phone 
     -> email 

Проблема с этим подходом является пользователь не может вспомнить UID и приложение придется управлять пользователю следующее. Я в настоящее время рассматривает другой способ хранения данных с использованием имен пользователей, так же, как Facebook или Twitter

-> users 
    -> UserName 
     -> UID 
     -> name 
     -> phone 
     -> email 

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

Итак, вопрос в том, требуется ли следовать подходу имени пользователя, если приложение имеет функцию социальной сети? Или мы должны идти с документами firebase, чтобы ничего не сломать, если Firebase решит ввести новые функции.
Каковы могут быть преимущества пребывания с первым подходом?

ответ

2

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

https://www.firebase.com/docs/web/guide/structuring-data.html

Вы можете достичь бизнес-требования, просто создавая поиск.

-> users 
    -> UID 
     -> name 
     -> phone 
     -> email 

-> usersByName 
    -> UserName: UID 

Поправьте меня, если я ошибаюсь, но только с помощью шаблона, как это вы можете гарантировать, что USERNAMES будет уникально в Firebase.

Запрос www.yoursite.com/user/UserName Может оказывать такое же содержание, как www.yoursite.com/user/UID Или вы можете перенаправить в приложении к www.yoursite.com/user/UserName ВПД при по запросу UID

+0

Ах! Поиск - хороший способ сделать это. Почему я не подумал об этом? Также я сейчас разрабатываю приложение для Android, поэтому мне не нужно добавлять перенаправление. Спасибо за предложение. – noob

0

Я бы использовал второй подход, но с автоматически сгенерированной последовательностью в качестве ключа. Имейте в виду, что UID и имена пользователей могут меняться со временем. В таком случае вам придется удалить свою запись и заново создать ее, чтобы иметь новый UID/Name. Что может привести к другим проблемам, например. UID/Name может быть частью других отношений.