Это быстрое сообщение, чтобы показать вам, как импортировать данные CSV или JSON в FireStore. Если вы данные в формате CSV, вам нужно будет преобразовать его в формат JSON, используя онлайн-инструмент, называемый CSVJSON. Это руководство использует Python. Вы можете проверить этот пост для версии JavaScript. Это руководство также предполагает, что у вас есть проект FireBase уже настроен.
Данные
Во-первых, вам нужно сделать, это подготовить данные, которые вы собираетесь импортировать. Для этого руководства я подготовил данные с помощью листов Google, затем экспортировал его в формате CSV. Затем я использовал CSVJSON Online, слишком упоминал выше, чтобы экспортировать данные в формат JSON.
Мы будем использовать ID
поле как идентификатор документа Firestore. Мы также будем структурировать код и файлы, чтобы позволить для нескольких импорта сбора. Один файл json будет содержать данные для одной коллекции. Имя файла JSON будет использоваться в качестве имени коллекции. Например, когда мы импортируем из категории .json
, он будет использовать (или создать, если никто не существует) коллекция, называемая категориями и импортными данными в него. Мы разместим все наши файлы JSON в данные/
папка в корне проекта.
Реквизиты для входа
Первый шаг – загрузить ключ сервиса с вашей FireBase. Сделайте это, навигации по настройкам пользователя и разрешения. См. Изображение ниже:
На странице пользователей и разрешений перейдите на вкладку «Услуги службы». Там вы увидите электронную почту вашей учетной записи службы и фрагмент кода, показывающий, как настроить учетную запись службы в вашем коде.
Нажмите кнопку «Создать новую закрытую клавишу», показанную на изображении выше, для загрузки ключа службы. Поместите этот файл в папке проекта.
Код
Сначала начните с помощью инициализации SDK FireBase с использованием учетных данных, которые мы создали на предыдущем шаге
import firebase_admin from firebase_admin import credentials, firestore cred = credentials.Certificate("path/to/serviceAccountKey.json") firebase_admin.initialize_app(cred) db= firestore.client()
Далее мы будем петь через все файлы JSON в данные/
каталог и импортировать каждый из них. Помните, что имена файлов будут использоваться в качестве имени коллекций ( Copyies.json
импортируют в коллекцию категорий).
Линия 12 гарантирует, что мы используем только файлы JSON.
Линия 13 получает имя коллекции из имени файла
Линия 15 преобразует данные JSON в список объектов
Для каждого объекта (линия 17) мы удаляем (поп) ID
поле и хранить его в переменной, которая будет использоваться в качестве идентификатора документа (строка 20). Если объект не имеет ID
Поле, мы позволим FireStore Auto-генерировать удостоверение личности для нас (строка 22).
Ниже полный код
import firebase_admin import os import json from firebase_admin import credentials, firestore cred = credentials.Certificate("path/to/serviceAccountKey.json") firebase_admin.initialize_app(cred) db = firestore.client() for filename in os.listdir('data'): if filename.endswith('.json'): collectionName = filename.split('.')[0] # filename minus ext will be used as collection name f = open('data/' + filename, 'r') docs = json.loads(f.read()) for doc in docs: id = doc.pop('id', None) if id: db.collection(collectionName).document(id).set(doc, merge=True) else: db.collection(collectionName).add(doc)
Вот и все! Все сделано.
Пожалуйста, обратитесь к вопросам и предложениям.
Счастливое кодирование.
Оригинал: “https://dev.to/daryllukas/prepopulate-firestore-firebase-with-a-python-script-10i1”