lib/firebase.pyimport firebase_admin from firebase_admin import credentials, firestore # HACK: 下記環境変数を設定しないとエラーになる import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './serviceAccount.json' cred = credentials.Certificate('./serviceAccount.json') firebase_admin.initialize_app(cred) db = firestore.Client()
from lib.firebase import db
SQLでいうところの、ユニーク制限についても気になるところ。また、できないのであれば頻繁にデータパッチを行うことになるので、まとめていきたい。
doc_ref = db.collection(u'articles').document(doc_id) doc = doc_ref.get() if doc.exists: logging.info(Found) else: logging.info(Not Found)
もっと良い方法がないか考え中
websites_ref = db.collection(u'websites').where(u'url', u'==', website_url).limit(1) website_docs = websites_ref.stream() # HACK: Generator型のempty checkがあれば、そちらで条件式を書く is_website = False for website_doc in website_docs: if website_doc.exists: is_website = True
website_ref = db.collection(u'websites').document() website_ref.set({ u'url': website_url, }) doc_ref = db.collection(u'articles').document() doc_ref.set({ u'website_id': website_ref, })