Firebase: utilisez Cloud Firestore et Cloud Storage depuis Python

introduction

table des matières

Préparation

Ajouter un SDK

python


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

Préparation du fichier d'authentification

--Fichier d'authentification utilisé pour accéder à Firebase par programmation.

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

  1. Dans la console Firebase, ouvrez Paramètres> Comptes de service.
  1. Cliquez sur Générer une nouvelle clé privée, puis sur Générer la clé pour confirmer.
  2. Stockez en toute sécurité le fichier JSON contenant la clé.

Utiliser Cloud Firestore

Import de bibliothèque

import


import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

Initialisation des informations d'identification

initialize


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

--Il peut être un peu pratique de réserver cred et default_app en tant que variables globales et de préparer une fonction d'initialisation comme indiqué ci-dessous.

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)

Je ne l'ai pas utilisé, mais vous pouvez utiliser des variables d'environnement pour passer le chemin vers le fichier json.

  1. Passez les variables d'environnement (dans un terminal ou un terminal).
  2. Dans ce cas, l'initialisation est effectuée sans spécifier d'argument.

export


export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"

initialize


default_app = firebase_admin.initialize_app()

Obtenir des données de 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()))

--Utilisez stream for collection pour obtenir tous les ** documents ** directement sous la collection.

getFirestoreData2


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

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

Obtenir des données de Firestore (utilisation récursive)

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)

ExamplePar exemple, si vous écrivez en rubis, c'est comme suit.

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

Ajouter des données à Firestore

uploadData2Firestore


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

Mettre à jour les données Firestore

update_data


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

    doc_ref.update({key: value})

Supprimer les données de Firestore

deleteFirestoreDocument


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

Utilisez Cloud Storage

Import de bibliothèque

import


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

Initialisation des informations d'identification

initialize


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

Je ne l'ai pas utilisé, mais vous pouvez utiliser des variables d'environnement pour passer le chemin vers le fichier json.

  1. Passez les variables d'environnement (dans un terminal ou un terminal).
  2. Dans ce cas, l'initialisation est effectuée sans spécifier d'argument.

export


export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"

initialize


storage_client = storage.Client()

Obtenez des données depuis Cloud Storage

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))

Ajouter des données à Cloud Storage

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")

Supprimer les données de Cloud Storage

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()

Résumé

«Je n'avais pas beaucoup d'informations sur la façon d'éviter d'utiliser des variables d'environnement, alors je l'ai résumé. ――Il peut être plus sûr d'utiliser des variables d'environnement en fonctionnement réel, mais ...

―― Ce qui suit est un site que j'ai souvent visité.

Recommended Posts

Firebase: utilisez Cloud Firestore et Cloud Storage depuis Python
Lire et utiliser des fichiers Python à partir de Python
Utiliser Cloud Storage depuis Python3 (Introduction)
Utiliser Azure Blob Storage à partir de Python
Utiliser l'API Google Cloud Vision de Python
Exploitez le stockage d'objets cloud de Sakura à partir de Python
Utilisez Thingsspeak de Python
Utiliser fluentd de python
Utilisez MySQL depuis Python
Utiliser MySQL depuis Python
Utilisez BigQuery depuis Python.
Utilisez mecab-ipadic-neologd de Python
Utiliser MySQL depuis Anaconda (python)
Utilisez l'API e-Stat de Python
API Nifty Cloud facile à utiliser avec botocore et python
Accédez à Google Cloud Storage à partir de Python (boto) à l'aide du compte de service et du fichier de clé (p12)
Utiliser la PNL Stanford Core à partir de Python
Python, rendement, retour et parfois rendement de
[Python / matplotlib] Comprendre et utiliser FuncAnimation
Utiliser de force Google Translate à partir de python
À propos de Python, à partir et à l'importation, comme
Utilisez l'API kabu Station® de Python
Utilisez l'API Flickr de Python
Utiliser Cloud Datastore depuis Compute Engine
Utiliser le modèle entraîné fastText de Python
Utiliser l'API Google Analytics de Python
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python
Essayez d'utiliser FireBase Cloud Firestore avec Python pour le moment
Exécutez Cloud Dataflow (Python) depuis AppEngine
De Python à l'utilisation de MeCab (et CaboCha)
[Python] Utiliser et et ou lors de la création de variables
Déployez le modèle de reconnaissance faciale Python sur Heroku et utilisez-le depuis Flutter ②
Utiliser le type de données PostgreSQL (jsonb) à partir de Python
Comment installer et utiliser pandas_datareader [Python]
Utiliser le groupe d'API d'apprentissage automatique A3RT de Python
Je veux utiliser jar de python
Déployez le modèle de reconnaissance faciale Python sur Heroku et utilisez-le depuis Flutter ①
Utilisez PIL ou Pillow avec Cygwin Python
Connectez-vous à postgreSQL depuis Python et utilisez des procédures stockées dans une boucle.
[GCP] Exploitez Google Cloud Storage avec Python
Portage et modification du solveur de doublets de python2 vers python3.
python: Comment utiliser les locals () et globals ()
Comment utiliser le zip Python et énumérer
Utiliser Django à partir d'un script Python local
Utilisation des fonctions C ++ de python avec pybind11
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
Comment utiliser is et == en Python
Utiliser Python et MeCab avec Azure Functions
Utiliser l'application LibreOffice en Python (2) Manipuler calc (à partir d'une macro et externe)
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
Étude de Python Hour7: Comment utiliser les classes
Étude à partir de Python Lecture et écriture de fichiers Hour9
Accéder à Cloud Storage à partir d'une instance Compute Engine
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[Bash] Obtenez la puissance de python de bash en utilisant la documentation ici
Envelopper C avec Cython pour une utilisation à partir de Python
[Python] Trouver des coordonnées sous deux angles et une distance
Charger et exécuter la commande depuis yml avec python
Utilisez Python dans votre environnement depuis Win Automation
Lier PHP et Python à partir de zéro sur Laravel