Ответ 1
Прежде всего, я предлагаю вам потратить некоторое время на ознакомление с Firebase, прочитав Руководство по Firebase (Ссылка на старое Руководство по Firebase). Все, что вам нужно знать, чтобы ответить на свой вопрос, доступно там. Но для простоты я приведу пример здесь:
Начнем с безопасности, вот основные правила Firebase, которые вам нужны для этого примера: (источник: Понимание безопасности) (старый источник: Понимание безопасности)
{
"rules": {
"users": {
"$user_id": {
".write": "$user_id === auth.uid"
}
}
}
}
Я пропущу фактическое создание пользователя и вход в систему и сосредоточусь на вопросе о хранении и получении пользовательских данных.
Хранение данных: (источник: Аутентификация Firebase) (старый источник: Аутентификация пользователя)
// Get a reference to the database service
var database = firebase.database();
// save the user profile into Firebase so we can list users,
// use them in Security and Firebase Rules, and show profiles
function writeUserData(userId, name, email, imageUrl) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
//some more user data
});
}
Полученные данные о базе данных будут выглядеть следующим образом:
{
"users": {
"simplelogin:213": {
"username": "password",
"email": "bobtony"
},
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
},
"facebook:456": {
"username": "facebook",
"email": "James Tamplin"
}
}
}
И последнее, но не в последнюю очередь получение данных, это можно сделать несколькими способами, но для этого примера я собираюсь использовать простой пример из руководства по Firebase: (источник: Чтение и запись данных) (старый источник: получение данных)
//Get the current userID
var userId = firebase.auth().currentUser.uid;
//Get the user data
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
//Do something with your user data located in snapshot
});
ОБНОВЛЕНИЕ: добавлен пример возвращаемых данных
Поэтому, когда вы вошли в систему как пользователь twitter: 123, вы получите ссылку на местоположение на основе вашего идентификатора пользователя и получите следующие данные:
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
}