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

Как начать с Firebase с помощью Python

Автор оригинала: Suchandra Datta.

В этой статье подробное руководство, которое поможет вам настроить базу данных FireBase и выполнять простые операции CRUD на нем с помощью Python.

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

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

Перейти к их сайту связан здесь и слюни над замечательными вариантами доступны.

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

Создайте новый проект на FireBase – давайте назовем его BookStoreProject. Как только он будет настроен, создайте базу данных в Realtime, выбрав вариант создания базы данных.

Когда вы нажимаете на базу данных Create, вы должны указать местоположение базы данных и правила безопасности. Два правила доступны:

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

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

Как написать в базу данных в реальном времени Firebase с помощью Python

Непосредственно следующий шаг – выяснить, как мы можем подключиться к нашей базе данных с помощью Python. Мы собираемся использовать API базы данных администратора. Вам нужно будет установить необходимую библиотеку.

Для получения дополнительной информации об использовании Firebase_admin Для Python посмотрите официальные документы, связанные с ссылками здесь Отказ

pip install firebase_admin

Для подключения к Firebase нам нужны следующие строки кода:

import firebase_admin

cred_obj = firebase_admin.credentials.Certificate('....path to file')
default_app = firebase_admin.initialize_app(cred_object, {
	'databaseURL':databaseURL
	})

Однако выполнить работу кода, нам нужны некоторые предпосылки.

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

Firebase позволит доступу к API-адресам сервера FireBase с учетных записей Google Service. Для аутентификации учетной записи службы нам требуется закрытый ключ в формате JSON.

Путь к этому файлу JSON должен быть предоставлен для создания объекта учетных данных. Чтобы генерировать ключ, перейдите к настройкам проекта, нажмите Создать новый закрытый ключ, загрузите файл и поместите его в свою структуру каталогов.

Для глубокого объяснения этого процесса см. Официальные документы, связанные с « » здесь Отказ

Далее нам нужен база данныхURL, который является просто URL, который дает доступ к нашей базе данных. Он присутствует на странице консоли FireBase базы данных в реальном времени.

Как написать с помощью функции SET ()

from firebase_admin import db

ref = db.reference("/")

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

Все данные, которые нужно хранить, должны быть в формате JSON, то есть последовательность пар ключевых значений. Если вам нужен генерируемый системный ключ, вы можете выбрать использование push () Функция, которую мы рассмотрим в ближайшее время.

Давайте построим подходящее JSON, которое можно сохранить в базе данных. У нас есть информация о четырех книгах следующим образом:

{
	"Book1":
	{
		"Title": "The Fellowship of the Ring",
		"Author": "J.R.R. Tolkien",
		"Genre": "Epic fantasy",
		"Price": 100
	},
	"Book2":
	{
		"Title": "The Two Towers",
		"Author": "J.R.R. Tolkien",
		"Genre": "Epic fantasy",
		"Price": 100	
	},
	"Book3":
	{
		"Title": "The Return of the King",
		"Author": "J.R.R. Tolkien",
		"Genre": "Epic fantasy",
		"Price": 100
	},
	"Book4":
	{
		"Title": "Brida",
		"Author": "Paulo Coelho",
		"Genre": "Fiction",
		"Price": 100
	}
}

Мы загружаем требуемый файл JSON и сохранить данные в базу данных, как это:

import json
with open("book_info.json", "r") as f:
	file_contents = json.load(f)
ref.set(file_contents)

База данных теперь выглядит так:

Как написать с помощью функции push ()

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

Например, если несколько источников пытаются сделать запись в/книги/Best_Sellers/, то, какой источник не делает последнюю запись, это значение будет сохраняться в базе данных. Это вводит возможность того, что данные будут перезаписаны. push () Решает эту проблему, используя уникальные ключи для каждого нового ребенка, который добавлен.

ref = db.reference("/")
ref.set({
	"Books":
	{
		"Best_Sellers": -1
	}
})

ref = db.reference("/Books/Best_Sellers")
import json
with open("book_info.json", "r") as f:
	file_contents = json.load(f)

for key, value in file_contents.items():
	ref.push().set(value)

Обратите внимание, что push () и Установить () не атомные. Это означает, что нет никакой гарантии, что обе функции будут выполняться вместе без прерывания как единое неделимое устройство.

Хотя база данных обновляется, если мы попытаемся получить данные, это может случиться так, что push () закончил но Установить () Разве не так, чтобы JSON мы получили, будет иметь ключ сгенерированной системой без поля значения.

Как обновить базу данных FireBase с помощью Python

Обновление базы данных так же просто, как установка ссылки на требуемой точке и используя Обновление () функция. Допустим, цена книг Дж. Р. Р. Толкиен снижается до 80 единиц, чтобы предложить скидку.

ref = db.reference("/Books/Best_Sellers/")
best_sellers = ref.get()
print(best_sellers)
for key, value in best_sellers.items():
	if(value["Author"] == "J.R.R. Tolkien"):
		value["Price"] = 90
		ref.child(key).update({"Price":80})
        
        

Как получить данные из Firebase с помощью Python

Мы уже получили данные, используя Получить () Метод, когда мы пытались обновить определенный ключ. Теперь мы увидим еще несколько методов и клуб их вместе, чтобы сделать сложные запросы.

Давайте получим все книги в порядке, отсортированном по цене, используя order_by_child () метод. Чтобы применить этот метод, мы должны сначала установить ключ, с помощью которого мы заказываем как поле индекса через .indexon Правило в правилах безопасности FireBase.

Если мы хотим отсортировать по цене, то цена должна быть указана в качестве индекса. Вы можете установить так, как это:

ref = db.reference("/Books/Best_Sellers/")
print(ref.order_by_child("Price").get())

Возвращаемое значение способа является упорядоченным. Заказать по ключу, используйте order_by_key () Отказ Чтобы получить книгу с максимальной ценой, мы используем limit_to_last () Способ следующим образом:

ref.order_by_child("Price").limit_to_last(1).get()

В качестве альтернативы, чтобы получить наименее ценную книгу, мы пишем это:

ref.order_by_child("Price").limit_to_first(1).get()

Чтобы получить книги, которые точно по цене на 80 единиц, мы используем это:

ref.order_by_child("Price").equal_to(80).get()

Для получения дополнительных примеров и методов запроса базы данных согласно вашим требованиям, проверьте официальную документацию здесь Отказ

Как удалить данные из Firebase с помощью Python

Удаление данных довольно проста. Давайте удалите все книги лучшего продавца с J.R.R. Толкан как автор.

ref = db.reference("/Books/Best_Sellers")

for key, value in best_sellers.items():
	if(value["Author"] == "J.R.R. Tolkien"):
		ref.child(key).set({})
        
        

Заключение

В этом посте мы научились создать базу данных Realtime FireBase, заполните его с данными и удалять, обновлять и запрашивать данные с помощью Python.

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