Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get data of a document in firestore by giving a field value belonged to that document using Python?

I'm new to python. I'm using a firebase firestore database for this project. After entering the Admission_No, I want to retrieve all the data in the relevant document such as name, grade, phone. I tried to write a program for it. But I failed. Please help me to complete my project. Thank you all.

The Code might be full of mistakes. Please don't mind it and fix them for me.

Sample Data Sample Data Structure

Here is my Code

.py

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate("cred.json")
firebase_admin.initialize_app(cred)

db = firestore.client()

data = {
    'Admission_No': input('enter ad_no : ')
}

query_ad = db.collection(u'Users').where(u"Admission_No", u"==", data["Admission_No"]).get()

get_data = db.collection(u'Users').where(u"Name", u"==", data["Name"]).get()

if query_ad:
    print('Exist')
    print(get_data)

else:
    print("Doesn't Exist")
like image 501
I'm a Studnet Avatar asked Sep 07 '25 08:09

I'm a Studnet


1 Answers

Upon checking your code, you declared another query Name, but you didn't include it in your data dictionary (data). You can remove the query get_data and just use your query_ad to check/get the value of your admission_no:

Untested Code:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate("cred.json")
firebase_admin.initialize_app(cred)

db = firestore.client()

data = {
    'Admission_No': input('enter ad_no : ')
}

query_ad = db.collection(u'users').where(u"Admission_No", u"==", data["Admission_No"]).stream()

for doc in query_ad:
    print(f'{doc.id} => {doc.to_dict()}')

Since you used the where() to query your documents, you can follow this guide to get multiple documents from a collection. Additionaly, by default, Cloud Firestore retrieves all documents that satisfy the query in ascending order by document ID, but you can order and limit the data returned.

For more references, you can check this guide to perform simple and compound queries in Cloud Firestore

like image 53
RJC Avatar answered Sep 09 '25 22:09

RJC