python
pip install firebase-admin # firebase firestore
pip install --upgrade google-cloud-storage # cloud storage
--Fichier d'authentification utilisé pour accéder à Firebase par programmation.
Depuis https://firebase.google.com/docs/admin/setup?hl=ja
- Dans la console Firebase, ouvrez Paramètres> Comptes de service.
import
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
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)
export
export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"
initialize
default_app = firebase_admin.initialize_app()
get
.
--A ce moment, une exception sera levée si le document pointé par doc_ref
n'existe pas.
--Cette exception est google.cloud.exceptions.NotFound
, donc traitons-la avec try
si nécessaire.
--Pour doc_ref
, vous pouvez vérifier si le document existe en utilisant la méthode ʻexists`.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()))
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
uploadData2Firestore
def uploadData2Firestore(collectionName, documentName, data):
db = firestore.client()
doc_ref = db.collection(collectionName).document(documentName)
doc_ref.set(data)
update_data
def update_data(collectionName, documentName, key, value):
db = firestore.client()
doc_ref = db.collection(collectionName).document(documentName)
doc_ref.update({key: value})
deleteFirestoreDocument
def deleteFirestoreDocument(collectionName, documentName):
db = firestore.client()
db.collection(collectionName).document(documentName).delete()
import
import firebase_admin
from firebase_admin import credentials
from google.cloud import storage
initialize
storage_client = storage.Client.from_service_account_json('<pass_to_json_file>')
export
export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"
initialize
storage_client = storage.Client()
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))
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")
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()
«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