Ugrás a fő tartalomra

Firebase alapok : alap parancsok használata

 Firebase alapok :  alap parancsok használata


A Firebase Firestore egy NoSQL felhőalapú adatbázis, amely JSON-szerű dokumentumokat és kollekciókat használ. Ebben az útmutatóban bemutatom az alapvető CRUD (Create, Read, Update, Delete) és egyéb műveleteket, beleértve a szűrést, rendezést és feltételek használatát.

Előkészítés:


Ha Python-ban használod a Firebase-t, először telepítsd a szükséges csomagot:

---python

!pip install firebase-admin


Firebase beállítása Python-ban:
Generálj egy Service Account JSON fájlt a Firebase Console-ból
Töltsd fel a fájlt a Colab notebookba




Csatlakozás Firebase Firestore-hoz:

---python

import firebase_admin from firebase_admin import credentials, firestore cred = credentials.Certificate("/content/serviceAccountKey.json") # A JSON fájl útvonala firebase_admin.initialize_app(cred) db = firestore.client()



1️⃣ Adatok Beszúrása (Create)

Firestore dokumentumokat tartalmaz, amelyek kulcs-érték párokból állnak.
Használhatjuk a set() és az add() függvényeket.

🔹 Egy dokumentum beszúrása (set)

---python

doc_ref = db.collection("felhasznalok").document("user_001") doc_ref.set({ "nev": "Kovács Béla", "eletkor": 30, "email": "bela.kovacs@example.com" })

🔹 Ha a dokumentum azonosítója nincs megadva, akkor Firestore automatikusan generál egyet.

🔹 Egy dokumentum beszúrása automatikus azonosítóval (add)

--- python

doc_ref = db.collection("felhasznalok").add({ "nev": "Nagy Anna", "eletkor": 25, "email": "anna.nagy@example.com" })

2️⃣ Adatok Lekérdezése (Read)

Firestore a get() és stream() függvényeket használja a dokumentumok lekérdezésére.

🔹 Egy adott dokumentum lekérdezése (get)

--- python

doc_ref = db.collection("felhasznalok").document("user_001") doc = doc_ref.get() if doc.exists: print(doc.to_dict())

🔹 Minden dokumentum lekérdezése (stream)

--- python

felhasznalok_ref = db.collection("felhasznalok") for doc in felhasznalok_ref.stream(): print(f"{doc.id} => {doc.to_dict()}")

3️⃣ Szűrés és Feltételek (Filter)

Firestore a where() metódust használja feltételek alkalmazására.

🔹 Pl.: Mindenki, akinek az életkora nagyobb, mint 30

--- python

query = db.collection("felhasznalok").where("eletkor", ">", 30) results = query.stream() for doc in results: print(doc.to_dict())

🔹 Pl.: Mindenki, aki 25 és 35 év közötti

--- python

query = db.collection("felhasznalok").where("eletkor", ">=", 25).where("eletkor", "<=", 35) results = query.stream() for doc in results: print(doc.to_dict())

4️⃣ Logikai Feltételek (AND, OR, NOT)

  • Firestore támogatja az AND feltételt (több where()).
  • Az OR feltétel trükkösen működik: külön lekérdezéseket kell futtatni, majd egyesíteni.
  • Az NOT operátor nem támogatott közvetlenül.

🔹 Pl.: 30 év felettiek és nem Kovács Béla (AND)

--- python

query = db.collection("felhasznalok").where("eletkor", ">", 30).where("nev", "!=", "Kovács Béla") results = query.stream() for doc in results: print(doc.to_dict())

🔹 Pl.: Kovács Béla VAGY 30 év felettiek (OR helyettesítés két külön lekérdezéssel)

--- python

query1 = db.collection("felhasznalok").where("nev", "==", "Kovács Béla").stream() query2 = db.collection("felhasznalok").where("eletkor", ">", 30).stream() for doc in list(query1) + list(query2): print(doc.to_dict())

5️⃣ Adatok Rendezése (Sort)

Firestore a order_by() metódust használja.

🔹 Pl.: Életkor szerint növekvő sorrendben

--- python

query = db.collection("felhasznalok").order_by("eletkor") results = query.stream() for doc in results: print(doc.to_dict())

🔹 Pl.: Életkor szerint csökkenő sorrendben

--- python

query = db.collection("felhasznalok").order_by("eletkor", direction=firestore.Query.DESCENDING) results = query.stream() for doc in results: print(doc.to_dict())

6️⃣ Adatok Módosítása (Update)

A update() függvénnyel módosíthatunk dokumentumokat.

🔹 Pl.: Kovács Béla életkorának módosítása 31-re

--- python

doc_ref = db.collection("felhasznalok").document("user_001") doc_ref.update({"eletkor": 31})

🔹 Pl.: Minden 25 év alatti életkor növelése 1-gyel

--- python

felhasznalok_ref = db.collection("felhasznalok").where("eletkor", "<", 25).stream() for doc in felhasznalok_ref: doc.reference.update({"eletkor": firestore.Increment(1)})

7️⃣ Adatok Törlése (Delete)

A delete() függvénnyel törölhetünk dokumentumokat.

🔹 Pl.: Egy adott dokumentum törlése

--- python

db.collection("felhasznalok").document("user_001").delete()

🔹 Pl.: Minden 40 év feletti törlése

--- python

felhasznalok_ref = db.collection("felhasznalok").where("eletkor", ">", 40).stream() for doc in felhasznalok_ref: doc.reference.delete()

8️⃣ Lapozás (Limit és Offset)

Firestore támogatja a limit() és start_after() funkciókat.

🔹 Pl.: Csak az első 2 találat lekérdezése

--- python

query = db.collection("felhasznalok").order_by("eletkor").limit(2).stream() for doc in query: print(doc.to_dict())

🔹 Összefoglaló Táblázat

MűveletFirebase Firestore Utasítás
Beszúrásset(), add()
Lekérdezésget(), stream()
Szűréswhere()
Logikai feltételekTöbb where() (AND támogatott, OR workaround)
Rendezésorder_by()
Módosításupdate()
Törlésdelete()
Lapozáslimit(), start_after()








Teszt python kód:

##------------------------------------- Python

# 🔹 1. Szükséges csomagok telepítése
!pip install firebase-admin
# 🔹 2. Importálás
import firebase_admin
from firebase_admin import credentials, firestore
# 🔹 3. Firebase inicializálása
# Töltsd fel a Firebase Service Account JSON fájlt a Colab-ra (először a Firebase Console-ból töltsd le)
cred = credentials.Certificate("/content/serviceAccountKey.json")  # A JSON fájl neve
firebase_admin.initialize_app(cred)
# 🔹 4. Firestore adatbázis kapcsolat létrehozása
db = firestore.client()
# 🔹 5. Új adat felvétele
def add_user(user_id, name, age, email):
    doc_ref = db.collection("felhasznalok").document(user_id)
    doc_ref.set({
        "nev": name,
        "eletkor": age,
        "email": email
    })
    print(f"✅ {name} hozzáadva!")
# 🔹 6. Adatok listázása
def list_users():
    users = db.collection("felhasznalok").stream()
    print("📌 Felhasználók listája:")
    for user in users:
        print(f"{user.id}: {user.to_dict()}")
# 🔹 7. Adat módosítása
def update_user(user_id, field, new_value):
    doc_ref = db.collection("felhasznalok").document(user_id)
    doc_ref.update({field: new_value})
    print(f"✏️ {user_id} frissítve: {field} -> {new_value}")
# 🔹 8. Adat törlése
def delete_user(user_id):
    db.collection("felhasznalok").document(user_id).delete()
    print(f"❌ {user_id} törölve!")
# 🔹 9. Példa használat
add_user("user_001", "Kovács Béla", 30, "bela.kovacs@example.com")
add_user("user_002", "Nagy Anna", 25, "anna.nagy@example.com")

list_users()                                              # 📌 Összes felhasználó listázása
update_user("user_001", "eletkor", 31)  # ✏️ Életkor módosítása
delete_user("user_002")                         # ❌ Felhasználó törlése
list_users()                                              # 📌 Újra listázzuk az adatokat

##-------------------------------------






 Firebase Service Account JSON fájl letöltése lépésről lépésre

Ahhoz, hogy a Google Colab vagy bármilyen külső alkalmazás kapcsolódni tudjon a Firebase Firestore adatbázishoz, szükséged van egy Service Account JSON fájlra, amely tartalmazza az autentikációhoz szükséges hitelesítő adatokat.

Kövesd az alábbi lépésről lépésre útmutatót a fájl letöltéséhez!


Lépj be a Firebase Console-ba

🔗 Nyisd meg a Firebase Console-t a következő linken:
👉 https://console.firebase.google.com/

Ha még nincs Firebase projekted, akkor:

  1. Kattints a "Create a project" (Projekt létrehozása) gombra.
  2. Adj neki egy nevet.
  3. Engedélyezd a Google Analytics-t (opcionális).
  4. Kattints a "Create" gombra.

Ha már van projekted, válaszd ki azt a listából.


Lépj be a Projekt Beállításaiba

  1. A Firebase Console-ban a bal felső sarokban kattints a "Project settings" (Projekt beállítások) ikonra ⚙️.
  2. Válaszd ki a "Service accounts" (Szolgáltatási fiókok) fület.

JSON fájl letöltése

  1. A "Firebase Admin SDK" szekció alatt keresd meg a következő szöveget:
    "Generate new private key" (Új privát kulcs létrehozása).
  2. Kattints a "Generate new private key" gombra.
  3. A letöltés automatikusan elindul, és kapsz egy JSON fájlt, amely tartalmazza a kulcsokat és hitelesítési adatokat.

🔹 Fontos:

  • Ne oszd meg ezt a fájlt másokkal, mert tartalmazza az API hozzáférési kulcsokat!
  • Tartsd biztonságos helyen, és ne töltsd fel nyilvános repóba (pl. GitHub).

 JSON fájl feltöltése Google Colab-ba

  1. Nyisd meg a Google Colab-ot:
    👉 https://colab.research.google.com/
  2. Nyisd meg a projektedet vagy hozz létre egy újat.
  3. A bal oldali panelen kattints a "Fájlok" (Files) ikonra 📂.
  4. Kattints a "Fájl feltöltése" (Upload file) gombra.
  5. Válaszd ki az imént letöltött JSON fájlt.
  6. A fájl feltöltődik a /content/ mappába.




Cloud Firestore API engedélyezéséhez

  1. Lépj be a Firebase Console-ba
    🔗 Nyisd meg a Firebase Console-t itt: https://console.firebase.google.com/

  2. Válaszd ki a projektet
    Kattints a projekt nevére, amelyet használni szeretnél (pl. mierdekel-db).

  3. Lépj a "Project Settings" (Projekt beállítások) menübe

    • A bal felső sarokban kattints a fogaskerék ikonra ⚙️.
    • Válaszd a Project settings lehetőséget.
  4. Navigálj a "Cloud Firestore" beállításokhoz

    • A bal oldali menüben válaszd a "Database" menüpontot.
    • Itt látni fogod a Cloud Firestore részt.
  5. Engedélyezd a Firestore API-t
    Ha még nem engedélyezted a Firestore-t, akkor itt fogsz látni egy "Enable" (Engedélyezés) gombot. Kattints rá, hogy engedélyezd a szolgáltatást.

  6. Kövesd az API aktiválásának lépéseit
    Ha a Firestore API nem volt még engedélyezve, akkor meg fog jelenni egy link a Google Cloud Console-ba, ahol engedélyezheted az API-t. Kattints arra a linkre, és az aktiválás végén az API elérhetővé válik.

  7. Próbáld újra a kódot
    Ha mindent sikerült beállítanod, akkor futtasd újra a kódot, és a Firestore API már működni fog.


📌 Ha a Firestore API aktiválásával kapcsolatos problémák merülnek fel:

  1. Google Cloud Console: Ha nem találod a Firestore engedélyezési lehetőséget a Firebase Console-ban, akkor próbálkozhatsz a Google Cloud Console használatával.

    • Lépj be, válaszd ki a projektet, és keresd meg a Firestore API-t a "APIs & Services" → "Library" menüpontban, majd engedélyezd.
  2. Projekt hitelesítés: Ha új projektet hoztál létre, lehet, hogy várnod kell egy ideig, amíg az API használhatóvá válik.



Linkek:

https://console.cloud.google.com/apis/dashboard?inv=1&invt=AbspCQ&project=mierdekel-db

https://console.cloud.google.com/firestore/databases/-default-/data/panel/felhasznalok/user_001?inv=1&invt=AbspCg&project=mierdekel-db

https://console.firebase.google.com/u/0/project/mierdekel-db/appcheck/products







Megjegyzések