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

Затем однажды другой из ваших коллег скажет: «Привет, я наконец загрузил все данные, которые вы просили». Вы подходите к консоли и видите вверху:

Режим только для чтения и не в реальном времени активирован для повышения производительности браузера

Выберите ключ с меньшим количеством записей для редактирования или просмотра в реальном времени

Какие? Нет, мои цвета. Мои обновления в реальном времени. Мне нужно углубиться в меньший набор данных, чтобы увидеть это в действии? Firebase, я понимаю, вы не хотите сжечь мою батарею и заставить мой браузер останавливаться, но как насчет моих многопутевых обновлений? Было бы неплохо, если бы все они выполнялись на одном экране. Я мог бы войти в каждый узел и посмотреть на них по отдельности, но действительно ли я увижу то, что мне нужно?

Что ж, использование Node.js и Firebase Tools - хорошее решение. Давайте просто сгенерируем небольшой случайный набор данных и загрузим его в базу данных. Я предполагаю, что вы уже знакомы с Node.js и установили его на свой компьютер.

Во-первых, давайте займемся созданием случайных данных. Существует довольно много библиотек и инструментов. Я пробовал JSON Schema Faker и пару других, но они не сработали из-за своеобразной структуры Firebase и того, как генерируются случайные ключи для объекта JSON. Поэтому я решил использовать Chance для генерации случайных величин и остался доволен результатами. Возможно, вы создадите случайные данные, такие как имена, UUID и т. Д.

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

Наша функция экспорта очень проста, поскольку мы просто хотим сгенерировать набор случайных пользователей.

Вызов создать пользователей будет генерировать любое количество пользователей от 3 до 7, вы можете изменить это количество в соответствии со своими потребностями. Затем у нас есть отдельный модуль, который импортирует этот файл, сгенерирует данные JSON и сохранит файл на диск.

Теперь мы наконец можем отправить его в Firebase. Убедитесь, что на вашем компьютере установлены Firebase Tools, и введите команду:

база данных firebase: set / ./mockData/db.json

ПОДОЖДИТЕ!

Вы делали это? У вас была правильная база данных? Это был не ваш продюсерский проект? Вы только что переписали всю производственную базу данных? Должен быть более безопасный способ ... не так ли?

Да, есть. Мы также можем использовать инструменты firebase в node.js. Давайте обновим наш файл generateMockData.js, чтобы использовать его, чтобы мы могли всегда устанавливать проект dev или qa. Таким образом, мы никогда случайно не перезапишем нашу производственную базу данных, потому что мы неправильно настроили инструменты firebase. Это действительно легко сделать.

Первый параметр - это путь в базе данных. В этом случае / является корнем базы данных. Второй параметр - это файл, а третий - различные варианты. Примечание. Если вы вошли в систему с помощью инструментов firebase, токен не нужен.

Наконец, мы можем настроить собственный сценарий npm, который мы можем вызвать, чтобы позаботиться обо всем в непроизводственном проекте Firebase. Итак, в наш package.json мы просто добавим новый скрипт:

«generate-mock-data»: «node buildScripts / generateMockData»

Затем мы звоним

npm run generate-mock-data

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

Вы можете найти образец кода для этого сообщения в блоге здесь.

Оригинальный пост находится здесь.