Как связать каждого пользователя с его данными в Firebase?
Описание проблемы:
Я планирую создать основное дерево данных с названием "users", которое будет содержать имена пользователей, выбранные разными пользователями в качестве своих логинов. В структуре данных для каждого пользователя будут храниться такие данные, как полное имя, адрес и номер телефона.
Мне нужно узнать, как получить данные каждого пользователя, когда они входят в свою учетную запись. Как реализовать эту функциональность?
1 ответ(ов)
Хотя я согласен с Андре относительно необходимости установления правил для обеспечения хорошей безопасности, я бы обработал данные немного по-другому. Вместо генерации строки я использую метод child()
. Это вопрос личных предпочтений.
Сначала получаем UID и определяем объект данных:
let user = firebase.auth().currentUser;
let uid = user.uid;
let yourdata = { foo: 'something', bar: 'other' };
Теперь сохраняем данные:
firebase.database().ref('users').child(uid).set(yourdata)
.then((data) => {
console.log('Данные сохранены', data);
})
.catch((error) => {
console.log('Ошибка при сохранении', error);
});
Теперь получим данные:
firebase.database().ref('users').child(uid).once('value')
.then((data) => {
let fetchedData = data.val();
console.log('Полученные данные', fetchedData);
})
.catch((error) => {
console.log('Ошибка при получении', error);
});
Обратите внимание, что метод set()
перезапишет ваши данные, поэтому, возможно, стоит использовать push()
в дальнейшем.
Как выполнить операцию SQL "LIKE" в Firebase?
Ошибка Firebase.update: первый аргумент содержит undefined в свойстве
Где найти документацию по форматированию даты в JavaScript?
Как проверить, содержит ли массив строку в TypeScript?
Ссылка и выполнение внешнего JavaScript-файла, размещенного на GitHub