Firebase: Verwenden Sie Cloud Firestore und Cloud Storage von Python

Einführung

Inhaltsverzeichnis

Vorbereitung

SDK hinzufügen

python


pip install firebase-admin # firebase firestore
pip install --upgrade google-cloud-storage # cloud storage

Vorbereitung der Authentifizierungsdatei

--Authentifizierungsdatei für den programmgesteuerten Zugriff auf Firebase.

Von https://firebase.google.com/docs/admin/setup?hl=ja

  1. Öffnen Sie in der Firebase-Konsole Einstellungen> Dienstkonten.
  1. Klicken Sie auf Neuen privaten Schlüssel generieren und dann zur Bestätigung auf Schlüssel generieren.
  2. Speichern Sie die JSON-Datei mit dem Schlüssel sicher.

Verwenden Sie den Cloud Firestore

Bibliotheksimport

import


import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

Initialisierung der Anmeldeinformationen

initialize


cred = credentials.Certificate('<pass_to_json_file>')
default_app = firebase_admin.initialize_app(cred)

initialize2


cred = None
default_app = None

def initializeFirebaseAPP():
	global cred
	global default_app
	cred = credentials.Certificate("< pass_to_json_file >")
	default_app = firebase_admin.initialize_app(cred)

Ich habe es nicht verwendet, aber Sie können Umgebungsvariablen verwenden, um den Pfad zur JSON-Datei zu übergeben.

  1. Übergeben Sie Umgebungsvariablen (in einem Terminal oder Terminal).
  2. Die Initialisierung erfolgt in diesem Fall ohne Angabe eines Arguments.

export


export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"

initialize


default_app = firebase_admin.initialize_app()

Holen Sie sich Daten von Firestore

getFirestoreData


def getFirestoreData(collectionName, documentName):
	db = firestore.client()
	doc_ref = db.collection(collectionName).document(documentName)

	doc = doc_ref.get()
	print(u'Document data: {}'.format(doc.to_dict()))

--Verwenden Sie "Stream" für "Sammlung", um alle ** Dokumente ** direkt unter der Sammlung abzurufen.

getFirestoreData2


def getFirestoreData2(collectionName):
	db = firestore.client()
	docs = db.collection(collectionName).stream()

	for doc in docs:
		print(u'{} => {}'.format(doc.id, doc.to_dict()))

Daten aus dem Firestore abrufen (rekursive Verwendung)

getFirestoreData3


def getFirestoreData3(col_name, doc_name, col_name2):
	db = firestore.client()
	doc_ref = db.collection(col_name).document(doc_name)
	col_ref2 = doc_ref.collection(col_name2)

getCollectionList.rb


require "google/cloud/firestore"

firestore = Google::Cloud::Firestore.new project_id: "<project_id>", keyfile: "<path_to_json>"
doc_ref = firestore.doc "<col_name>/<doc_name>"

doc_ref.cols do |col|
	puts col.collection_id
end

Fügen Sie dem Firestore Daten hinzu

uploadData2Firestore


def uploadData2Firestore(collectionName, documentName, data):
	db = firestore.client()
	doc_ref = db.collection(collectionName).document(documentName)
	doc_ref.set(data)

Firestore-Daten aktualisieren

update_data


def update_data(collectionName, documentName, key, value):
    db = firestore.client()
    doc_ref = db.collection(collectionName).document(documentName)

    doc_ref.update({key: value})

Daten aus dem Firestore löschen

deleteFirestoreDocument


def deleteFirestoreDocument(collectionName, documentName):
	db = firestore.client()
	db.collection(collectionName).document(documentName).delete()

Verwenden Sie Cloud-Speicher

Bibliotheksimport

import


import firebase_admin
from firebase_admin import credentials
from google.cloud import storage

Initialisierung der Anmeldeinformationen

initialize


storage_client = storage.Client.from_service_account_json('<pass_to_json_file>')

Ich habe es nicht verwendet, aber Sie können Umgebungsvariablen verwenden, um den Pfad zur JSON-Datei zu übergeben.

  1. Übergeben Sie Umgebungsvariablen (in einem Terminal oder Terminal).
  2. Die Initialisierung erfolgt in diesem Fall ohne Angabe eines Arguments.

export


export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"

initialize


storage_client = storage.Client()

Holen Sie sich Daten aus dem Cloud-Speicher

download_blob


def download_blob(src_blob_url, dst_file):
	bucket_name = '<bucket_name>'
	bucket = storage_client.get_bucket(bucket_name)

	blob = bucket.blob(src_blob_url)
	storage_client.download_blob_to_file(blob, dst_file)

	print('Blob {} downloaded to {}.'.format(src_blob_url, dst_file))

Hinzufügen von Daten zum Cloud-Speicher

upload_blob


def upload_blob(file_name, data_sorce):
	bucket_name = '<bucket_name>'
	bucket = storage_client.get_bucket(bucket_name)
	blob = bucket.blob(file_name)
	blob.upload_from_filename(filename=data_sorce)

	if file_name in bucket.list_blobs():
		print("cloud storage: upload success")
	else:
		print("cloud storage: upload failed")

Daten aus dem Cloud-Speicher löschen

delete_blob


def delete_blob(blob_url):
	bucket_name = '<bucket_name>'
	bucket = storage_client.get_bucket(bucket_name)
	blob = bucket.blob(blob_url)

	blob.delete()

Zusammenfassung

――Ich hatte nicht viele Informationen darüber, wie man die Verwendung von Umgebungsvariablen vermeiden kann, deshalb habe ich sie zusammengefasst. ――Es mag sicherer sein, Umgebungsvariablen im tatsächlichen Betrieb zu verwenden, aber ...

――Das Folgende ist eine Seite, die ich oft besucht habe.

Recommended Posts

Firebase: Verwenden Sie Cloud Firestore und Cloud Storage von Python
Lesen und verwenden Sie Python-Dateien aus Python
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Verwenden Sie Azure Blob Storage aus Python
Verwenden Sie die Google Cloud Vision-API von Python
Betreiben Sie den Cloud-Objektspeicher von Sakura von Python aus
Verwenden Sie thingspeak aus Python
Verwenden Sie fließend Python
Verwenden Sie MySQL aus Python
Verwenden Sie MySQL aus Python
Verwenden Sie BigQuery aus Python.
Verwenden Sie mecab-ipadic-neologd von Python
Verwenden Sie MySQL von Anaconda (Python)
Verwenden Sie die e-Stat-API von Python
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Greifen Sie über Python (boto) mit dem Dienstkonto und der Schlüsseldatei auf Google Cloud Storage zu (S. 12).
Verwenden Sie Stanford Core NLP von Python
Python, Ausbeute, Rückkehr und manchmal Ausbeute von
[Python / matplotlib] FuncAnimation verstehen und verwenden
Verwenden Sie zwangsweise Google Translate aus Python
Über Python, aus und importieren, als
Verwenden Sie die kabu Station® API von Python
Verwenden Sie die Flickr-API von Python
Verwenden Sie den Cloud-Datenspeicher von Compute Engine
Verwenden Sie das von fastText trainierte Modell von Python
Verwenden Sie die Google Analytics-API von Python
Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Führen Sie Cloud Dataflow (Python) über AppEngine aus
Von Python bis zur Verwendung von MeCab (und CaboCha)
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Stellen Sie das Python-Gesichtserkennungsmodell für Heroku bereit und verwenden Sie es von Flutter ②
Verwenden Sie den PostgreSQL-Datentyp (jsonb) von Python
So installieren und verwenden Sie pandas_datareader [Python]
Verwenden Sie die API-Gruppe A3RT für maschinelles Lernen aus Python
Ich möchte ein Glas aus Python verwenden
Stellen Sie das Python-Gesichtserkennungsmodell für Heroku bereit und verwenden Sie es von Flutter ①
Verwenden Sie PIL oder Pillow mit Cygwin Python
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.
[GCP] Betreiben Sie Google Cloud Storage mit Python
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Python: Verwendung von Einheimischen () und Globalen ()
Verwendung von Python zip und Aufzählung
Verwenden Sie Django aus einem lokalen Python-Skript
Verwenden von C ++ - Funktionen aus Python mit pybind11
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
Verwendung ist und == in Python
Verwenden Sie Python und MeCab mit Azure-Funktionen
Verwenden Sie die LibreOffice-App in Python (2) Manipulieren Sie calc (von Makro und extern)
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Studie aus Python Hour7: Verwendung von Klassen
Studie aus Python Lesen und Schreiben von Hour9-Dateien
Greifen Sie über eine Compute Engine-Instanz auf den Cloud-Speicher zu
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
[Bash] Holen Sie sich die Kraft von Python aus Bash mithilfe der folgenden Dokumentation
Wickeln Sie C mit Cython für Python ein
[Python] Finde Koordinaten aus zwei Winkeln und Entfernungen
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verknüpfung von PHP und Python von Grund auf auf Laravel