Синхронизация Google Sheets с базой данных Firebase в реальном времени
Часто при тестировании дизайна полезно создать прототип с реалистичными данными. Пользователи склонны давать лучшие отзывы, когда содержание правдоподобно, а не заполнено текстом «lorem ipsum». В этом коротком руководстве мы покажем, как синхронизировать электронную таблицу Google Sheets с базой данных Firebase Realtime и использовать ее в своем высокоточном прототипе в качестве источника данных.
В целом, использование базы данных в реальном времени проще и быстрее, чем непосредственное использование Sheets API. Уровень Firebase также поддерживает до 100 000 одновременных подключений против 400 с использованием Sheets API. После синхронизации электронной таблицы вы можете легко использовать любой стек для доступа к вашим данным. Это также дает заинтересованным сторонам и исследователям простой способ манипулировать данными, видеть изменения в реальном времени и очень быстро тестировать множество вариантов.
Шаг 1: Создайте свой проект Firebase
Если вы еще этого не сделали, зарегистрируйтесь в Firebase, используя бесплатную подписку, а затем создайте свой проект.
Шаг 2: Создайте Realtime базу данных
Перейдите в Develop -> Database и нажмите кнопку «Create database».
Убедитесь, что вы изменили свои права на чтение и запись на «true» и нажмите «Опубликовать».
Скопируйте URL базы данных. Нам он понадобится позже.
URL вашей базы данных будет уникальным для вашего проекта.
Шаг 3. Создайте электронную таблицу и заполните ее, используя следующий формат
Первый ряд содержит ваши ключи. Первый ключ должен быть установлен в «id», и каждая строка должна быть помечена соответствующим номером, начиная с «1».
Вы можете добавить столько строк или столбцов, сколько вам нужно.
Шаг 4. Создайте свой проект Apps Script
В меню выберите Tools -> Script editor.
Вы попадете в редактор кода со следующим открытым файлом: Code.gs.
Замените содержимое этим фрагментом.
Найдите этот код в верхней части файла:
Замените параметр «spreadsheetID» своим собственным. Идентификатор - это выделенная жирным шрифтом часть полного URL-адреса электронной таблицы например:
https://docs.google.com/spreadsheets/d/spreadsheetID/edit#gid=0)
Замените заполнитель «firebaseUrl» на URL вашей базы данных из шага 2.
В вашем меню выберите View -> Show manifest file, который добавит файл с именем appsscript.json.
Это добавит файл appsscript.json в ваш проект. Замените содержимое следующим фрагментом.
Шаг 5: Запустите синхронизацию
В меню выберите Run -> Run function -> initialize. Вы увидите приглашение просмотреть и принять разрешения. Это позволяет проекту App Script получить доступ к электронной таблице и загрузить данные в Firebase. Нажмите Review Permissions, а затем нажмите Allow.
Превосходно! Ваша база данных Firebase Realtime теперь заполнена данными из вашей электронной таблицы! Любые дальнейшие изменения будут синхронизироваться без проблем, и вы даже сможете поделиться своей таблицей с другими людьми.
Советы и хитрости
Добавить безопасности
Если вы чувствуете себя модно, вы можете добавить немного больше безопасности в базу данных Firebase. Перейдите в Firebase Console -> Database и измените ваши правила на следующие.
Вы должны будете реализовать Аутентификацию Firebase на своем прототипе, чтобы ваши пользователи могли читать данные. Установка метода записи в false означает, что только ваша электронная таблица может записывать в базу данных.
Генерация массива
В списке, если ваш идентификатор начинается с 0 и увеличивается на 1, сценарий сгенерирует массив вместо пар ключ-значение.
Вложенные данные
При преобразовании таблицы в JSON можно выполнить только один уровень вложенности. Но что, если вам нужны вложенные данные? Приведенный выше скрипт имеет специальную функцию, которая позволяет создавать вложенный объект. Просто назовите заголовок столбца с путем к ключу соединения объектов, используя двойное подчеркивание __. Если вы хотите поместить улицу под адресом, вы можете просто сказать «address__street», это означает, что у вас не может быть столбца с именем только адрес в вашем списке.
Это создаст объект, подобный представленному ниже, и вы также можете вкладывать его на любом уровне.
Попробуйте! Вы не будете разочарованы...
Мы думаем, что техника, которую мы описали, поможет вашим прототипам с реалистичными данными. Наша цель - помочь сократить количество времени, которое вы тратите на ввод данных, и высвободить больше времени для экспериментов и повторений!
Перевод статьи: Sync Google Sheets to a Firebase Realtime Database
Источник: medium.com