Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
23 Июн 2023
3 мин
3488

Как создать сайт с использованием базы данных Firebase

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

Firebase — это платформа, предоставляемая Google, которая предлагает различные сервисы для разработки веб-приложений и мобильных приложений. Один из основных сервисов Firebase — это облачная база данных реального времени, которая позволяет хранить и синхронизировать данные между разными клиентами.

В данной статье мы рассмотрим, как создать сайт с использованием базы данных Firebase.

Станьте веб-разработчиком с нуля за 15 месяцев на курсе онлайн-университета Skypro. Преподаватели — практикующие эксперты из VK, «Альфа-Банка», Skyeng и других крупных компаний. В программе нет лишней теории, зато много практических заданий, а результаты курсовых можно положить в портфолио. Специалисты центра карьеры помогут с резюме, сопроводительными письмами и собеседованиями.

Шаг 1: Создание проекта Firebase

Первым делом, вам необходимо создать новый проект Firebase. Для этого:

  1. Зайдите на сайт Firebase.
  2. Нажмите на кнопку «Get started».
  3. Войдите в свою учетную запись Google.
  4. Нажмите на кнопку «Добавить проект» и следуйте инструкциям.

После создания проекта, вы будете перенаправлены на панель управления Firebase.

Шаг 2: Добавление Firebase в ваш сайт

Чтобы добавить Firebase в ваш сайт, выполните следующие действия:

  1. В панели управления Firebase выберите вкладку «Настройки проекта».
  2. В разделе «Ваши приложения» выберите вкладку «Веб».
  3. Нажмите на кнопку «», чтобы добавить новое веб-приложение.
  4. Скопируйте предоставленный код и вставьте его в ваш html-файл между тегами <head> и </head>.

Пример кода:

<script src="https://www.gstatic.com/firebasejs/8.0.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.0.0/firebase-firestore.js"></script>
<script>
  // Ваши настройки Firebase
  var firebaseConfig = {
    apiKey: "YOUR_API_KEY",
    authDomain: "YOUR_AUTH_DOMAIN",
    projectId: "YOUR_PROJECT_ID",
    storageBucket: "YOUR_STORAGE_BUCKET",
    messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
    appId: "YOUR_APP_ID"
  };
  // Инициализация Firebase
  firebase.initializeApp(firebaseConfig);
  const db = firebase.firestore();
</script>

Не забудьте заменить настройки Firebase на свои!

Шаг 3: Работа с данными в Firebase

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

Пример добавления данных:

db.collection("users").add({
    name: "John",
    age: 25
})
.then((docRef) =&gt; {
    console.log("Документ успешно добавлен с ID: ", docRef.id);
})
.catch((error) =&gt; {
    console.error("Ошибка добавления документа: ", error);
});

Пример получения данных:

db.collection("users").get().then((querySnapshot) =&gt; {
    querySnapshot.forEach((doc) =&gt; {
        console.log(`${doc.id} =&gt; ${doc.data()}`);
    });
});

На курсе Skypro «Веб-разработчик» освоите JavaScript, GitHub, Tilda, Postman, HTML, CSS и другие программы и инструменты, научитесь решать реальные задачи разработчика и работать в команде. Все учебные проекты можно положить в портфолио и устроиться на работу по новой специальности еще в процессе обучения.

Шаг 4: Отображение данных на сайте

Чтобы отображать данные на вашем сайте, вы можете использовать JavaScript для создания HTML-элементов и заполнения их данными из Firebase.

Пример:

db.collection("users").get().then((querySnapshot) =&gt; {
    const userList = document.getElementById("userList");
    querySnapshot.forEach((doc) =&gt; {
        const user = doc.data();
        const userElement = document.createElement("li");
        userElement.textContent = `${user.name} (${user.age})`;
        userList.appendChild(userElement);
    });
});

HTML-шаблон:

<ul id="userList"></ul>

Теперь вы знаете основы создания сайта с использованием базы данных Firebase. Это лишь начало, и Firebase предлагает множество возможностей для расширения вашего сайта и добавления новых функций. Удачи вам в изучении и использовании Firebase! 😉

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
","",""],"correct":1},{"question":"Что делает код 'db.collection('users').add({...})'?","answers":["Удаляет документ из коллекции","Добавляет новую запись в коллекцию","Получает данные из коллекции"],"correct":1},{"question":"Какой элемент HTML используется в примере для отображения пользователей?","answers":["
","
    ","

    "],"correct":1}]}`; const $wrapper = jQuery('.media-article-test__main'); const { data: testData } = JSON.parse(test_data_json); let current = 0; function showForm() { const input = document.querySelector(".media-article-test__form .media-article-test__form-input--phone"); const iti = window.intlTelInput(input, { initialCountry: "ru", strictMode: true, showSelectedDialCode: true, utilsScript: "https://fastly.jsdelivr.net/npm/intl-tel-input@21.2.7/build/js/utils.js", }); jQuery.validator.addMethod("phoneValid", function () { return iti.isValidNumber() }) const $form = jQuery('.media-article-test__form'); $form.css('display', ''); $form.on('submit', (e) => { e.preventDefault(); }) $form.validate({ rules: { phone: { required: true, phoneValid: true }, email: { required: true } }, messages: { phone: { required: "Телефон обязателен", phoneValid: "Введите корректный телефон" }, email: { required: "Почта обязательна", email: "Введите корректный email" } }, focusInvalid: false, submitHandler: async function (form) { const $phone = $form.find('input[name="phone"]').get(0); const $email = $form.find('input[name="email"]').get(0); const $name = $form.find('input[name="name"]').get(0); const utm_campaign = encodeURIComponent(window.location.href.split('?')[0]) const formData = new FormData(); $name.value && formData.append("name", $name.value); formData.append("email", $email.value); formData.append("phone", window.intlTelInputGlobals.getInstance($phone).getNumber()); formData.append("queryParams", `utm_source=skypro_blog&utm_campaign=${utm_campaign}`); formData.append("sourceKey", "skypro_blog_article_test"); formData.append("funnel", "televox"); $form.addClass("media-article-test__form--loading"); try { await fetch('https://api.sky.pro/api/v1/lead/tilda', { method: 'POST', body: formData, }); jQuery('.media-article-test__success').css('display', ''); try { ym(69215599, "reachGoal", "marketing_lead"); ym(69215599, "reachGoal", "send_any_form"); } catch (e) {} // $modalWrap.css("display", "none"); } catch (e) { // $modal.removeClass("spm-voting__modal--loading"); // jQuery(".spm-voting__form-submit-error").css("display", "block"); jQuery('.media-article-test__form-title').text('Ошибка выполнения запроса!'); } finally { $form.removeClass("media-article-test__form--loading"); jQuery('.media-article-test__form-submit').css('display', 'none'); jQuery('.media-article-test__form .iti').css('display', 'none'); jQuery('.media-article-test__form-input[name="name"]').css('display', 'none'); jQuery('.media-article-test__form-input[name="email"]').css('display', 'none'); } } }) const $testBlock = jQuery('.media-article-test__main'); $testBlock.css('filter', 'blur(10px)'); $testBlock.css('background', 'none'); $testBlock.css('pointer-events', 'none'); $form.css('display', ''); jQuery('.media-article-test').css('min-height', '360px'); jQuery('.media-article-test__title').css('display', 'none'); jQuery('.media-article-test__subtitle').css('display', 'none'); } function render() { const { question, answers } = testData[current] $wrapper.html(`
    Вопрос ${current + 1}: ${question}
    ${current + 1} / ${testData.length}
    ${answers.map(ans => ` `).join('')}
    `); jQuery('.media-article-test__answer').click(() => { jQuery($wrapper).fadeOut(300, function() { if (current < testData.length - 1) { current++; render() } else { showForm() } jQuery(this).fadeIn(300); }); }) } render() })

    Добавить комментарий