Рубрики
Без рубрики

PrepoPatulate Firestore (Firebase) с помощью сценария Python

Это быстрое сообщение, чтобы показать вам, как импортировать данные CSV или JSON в FireStore. Если вы данные в CSV … Теги от Firebase, Python, 100daysofcode, FirstPost.

Это быстрое сообщение, чтобы показать вам, как импортировать данные 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”